Java循环语法介绍
如果要求打印100句”Java语言”,你会怎么做?
复制粘贴100句”System.out.prinltn(“Java语言”)”???
在这里就需要用到for循环了
for循环语法:
for(初始值;boolean类型的运算式;重复式) { 描述句; }
看语法的话有点懵逼,我们直接通过代码直观的展示:
public class Test { public static void main(String[] args) { // 要求打印5句"关注微信公众号——夜猫笔记" for(int i =0 ; i<5 ; i++){ System.out.println("关注微信公众号——夜猫笔记"); } } }
从结果中可以看出完整的打印了5句话。当你把这段代码编译的时候,计算机就会识别出要做出循环操作,从哪里开始循环呢?从i=0作为起点,终点呢?i<5,过程就是i++。
逻辑:
i=0;i<5;i++ 打印:”关注微信公众号——夜猫笔记”
i=1;i<5;i++ 打印:”关注微信公众号——夜猫笔记”
i=2;i<5;i++ 打印:”关注微信公众号——夜猫笔记”
i=3;i<5;i++ 打印:”关注微信公众号——夜猫笔记”
i=4;i<5;i++ 打印:”关注微信公众号——夜猫笔记”
此时我们已经输出了5条语句了,i不能再等于5了,所以此时for循环结束
上面讲述的是单循环,我们还可以写双循环
双循环语法:
for(初始值;boolean类型的运算式;重复式){ for(初始值;boolean类型的运算式;重复式){ 描述句; } }
还是通过代码来直观的展示吧…
用双循环打印99乘法表,代码展示:
public class Test { public static void main(String[] args) { // 要求打印99乘法表 for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.printf("%d * %d =%dt",j,i,i*j); } System.out.println(); } } }
双循环的执行顺序可以这样理解,就像这个数学式子[(6+6)*3],根据运算法则我们必须先算小括号里面,再计算中括号里面的。
双循环也是一样的道理,我们先执行foi(int j=1 ;j<=i;j++)这个循环,当这个循环结束后,再执行外面的大循环for(int i=1;i<=9;i++),一直循环到大循环结束为止。
换个说法就是小循环打印每行该有的东西,大循环打印的就是行数。
我们通过打印一个正方形来更直观的展示:
public class Test { public static void main(String[] args) { /** * 要求打印一个5*9的长方形 * 5代表一行需要5个* * 9代表一共有9行 */ for(int i=0;i<9;i++){ for(int j=0;j<5;j++){ System.out.printf("* "); } System.out.println(); } } }
while循环
语法:
while(条件式){ 描述句; }
只要条件式结果为true,就会一直执行此循环。
public class Test { public static void main(String[] args) { /** * 随机生成0~9的数字,只要是生成5就会跳出循环,不是5就一直循环 */ while(true){ int a = (int)(Math.random()*10);//随机生成0~9的数字 System.out.println(a); if(a==5){ System.out.println(a); break;//跳出循环结构 } } } }
除了单纯的while()循环,还有do…while()循环
语法:
do{ 描述句 }while(条件式);//注意:这里是有";",不能省略
do…while循环的逻辑是:先做,然后再判断是否循环。还是通过代码的方式来展示它和while直接的差别
public class Test { public static void main(String[] args) { int a; /** * 随机生成0~9的数字,只要是生成5就会跳出循环,不是5就一直循环 */ do{ a = (int)(Math.random()*10); System.out.println(a); }while(a != 5); System.out.println(a); } }
程序的逻辑是:先随机生成0~9的数字赋值给a,并且输出a,然后再判断a是否等于5,如果不等于5就执行while循环,如果等于5就不执行while循环。