循环语句
while循环
格式
1 定义初始化表达式 2 3 while(条件表达式){ 4 5 循环体(执行语句); 6 7 }
示例代码
1 public class WhileDemo{ 2 public static void main(String[] args){ 3 int i=3; 4 while(i<5){ 5 System.out.println("i"+"="+i); //i=3 i=4 6 i++ 7 } 8 } 9 }
注意:i++ 在以上语句中必须有,否则会出现死循环
do...while循环
先执行循环体,再判断条件满足条件再继续执行循环体
无论条件是否满足,循环体至少执行一次
1 public class WhileDoDemo{ 2 public static void main(String[] args){ 3 int i=3; 4 do{ 5 System.out.println("i"+"="+i); //i=3 i=4 6 i++; 7 } 8 while(i<5); 9 } 10 }
for循环
格式
1 for(初始化表达式;循环条件表达式;循环后的操作表达式) 2 3 { 4 5 执行语句; 6 7 }
代码示例
1 public class Exam{ 2 public static void main(String[] args){ 3 for(int i=0;i<5;i++){ 4 System.out.println("i"+"="+i); //i=0 i=1 i=2 i=3 i=4 5 } 6 } 7 }
步骤
1.int i=0
2.i<5
3.System.out.println("i"+"="+i);
4.i++
5.i<5
......
for和while区别
1.变量有自己的作用域,如果将用于控制控制循环的增量定义在for语句中,那么该变量只有在for语句中有效,for语句执行完毕,该变量在循环中释放,不会传到循环之外
2.for和while可以互换,如果需要定义循环变量,用for更为合适
1 public class ForWhileDemo{ 2 public static void mian(String[] args){ 3 for(int i=0;i<5;i++){ 4 System.out.println(i); 5 } 6 System.out.println(i); //不能执行 编译会报错,因为出了for循环,i就变成没有声明的变量了 7 int i=0; 8 while(i<5){ 9 System.out.println(i); 10 } 11 System.out.println(i); //可以执行 12 } 13 }
总结
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构
循环小细节
(一)
无限循环最简单表现形式
1 for(;;){} //默认为true 2 3 while(true){}
(二)
1 public class ForDemo{ 2 public static void main(String[] args){ 3 int i=0; 4 for(;i<5;){ 5 i++; 6 } 7 } 8 }
这种形式是正确的,不是错误的,但是一般不这么写
1 public class ForDemo{ 2 public static void main(String[] args){ 3 int i=0; 4 for(System.out.print("a");i<5;System.out.print("b"),i++){ 5 System.out.print("c") //acbcbcbcbcb 6 } 7 } 8 }
这种格式也是正确的,只要有个判断条件就可以了,只不过这种写法比较不常见,只要初始化语句和循环后的操作语句是正确的,就可以正常运行
循环嵌套
语句嵌套形式,其实就是语句中还有语句
使用循环嵌套,形象地说就是大圈套小圈
①
1 public class ForForDemo{ 2 public static void main(String[] args){ 3 for(int i=0;i<5;i++)//表示行{ 4 for(int j=5;j>i;j--)//表示列{ 5 System.out.print("*"); 6 } 7 System.out.println(); 8 } 9 } 10 }
结果
1 ***** 2 **** 3 *** 4 ** 5 *
②
1 public class ForForDemo{ 2 public static void main(String[] args){ 3 for(int i=0;i<5;i++)//表示行{ 4 for(int j=0;j<=i;j++)//表示列{ 5 System.out.print("*"); 6 } 7 System.out.println(); 8 } 9 } 10 }
结果
1 * 2 ** 3 *** 4 **** 5 *****
不是规律的规律:
尖朝上,改变条件,让条件随着外循环变化
尖朝下,改变初始化值,让初始化值随着外循环变化
/*也可以不这样写*/
九九乘法表
1 public class NineNine{ 2 public static void main(String[] args){ 3 for(int i=1;i<=9;i++){ 4 for(int j=1;j<=i;j++){ 5 System.out.print(i+"*"+j+"="+i*j+"\t"); // /t制表符,自动空格 6 } 7 System.out.println(); 8 } 9 } 10 }
结果
1 1*1=1 2 1*2=2 2*2=4 3 1*3=3 2*3=6 3*3=9 4 1*4=4 2*4=8 3*4=12 4*4=16 5 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
/t 制表符代表自动空格 使其一一对齐,看起来美观
👣不忘初心 方得始终👣 👌WCY

浙公网安备 33010602011771号