1. 循环结构
1.1 while 循环
基本语法格式:
while(循环条件){ 循环语句; }
循环条件为 true,则执行循环语句;否则结束循环。
一个循环,肯定有开始,有结束
实例1:打印 1-10 的数字
public static void main(String[] args) { int num = 1; while (num <= 10) { System.out.println(num); num++; } }
🍤 运行结果:
实例2:计算 1-100 的和
public static void main(String[] args) { int n = 1; int sum = 0; while (n <= 100) { sum += n;//sum=sum+n,实现累加 n++; } System.out.println(sum); }
🍤 运行结果:
实例3:求 1-100 以内偶数的和
//1-100偶数的和 public static void main(String[] args) { int sum1 = 0; int a = 2; while (a <= 100) { sum1 += a; a += 2; } System.out.println(sum1); } //1-100奇数的和 public static void main(String[] args) { int sum2 = 0; int a = 1; while (a <= 100) { sum2 += a; a += 2; } System.out.println(sum2); }
实例4:计算 5 的阶乘
5!=54321
4!=4321
3!=321
2!=21
1!=1
0!=1
public static void main(String[] args) { int n = 1; int result = 1; while (n <= 5) { result *= n;//累乘 n++; } System.out.println(result); }
9
🍤 运行结果:
实例5:计算 1!+2!+…+5!
这里既要算加法,还要算阶乘。在每一个数字阶乘计算后,然后求和,我们可以采用嵌套循环,内循环负责求阶乘,外循环负责求和。
public static void main(String[] args) { int num = 1; int sum = 0; // 外层循环负责求阶乘的和 while (num <= 5) { int k = 1; int i = 1; // 里层循环负责完成求阶乘 while (i <= num) { k *= i;//k=k*i i++; } sum += k;//sum=sum+k num++; } System.out.println("sum = " + sum); }
🍤 运行结果:
实例6:找到1-100之间既能被3整除也能被5整除的数
public static void main(String[] args) { int i = 1; while (i <= 100) { if(i % 15 != 0) { i++; continue;//有关continue的介绍在下面 } System.out.println(i); i++; } }
🍤 运行结果:
注:
- 和 if 类似,while 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句,建议还是加上 { }。
- 和 if 类似,while 后面的 { 建议和 while 写在同一行。
- 和 if 类似,while 后面不要多写分号,否则可能导致循环不能正确执行。
比如:
int num = 1; while (num <= 10); { System.out.println(num); num++; } //[无任何输出, 程序死循环]
这里为 while 的语句体(这是一个空语句),实际的 { } 部分和循环无关,此时循环条件 num <= 10 恒成立,导致代码死循环。
1.2 break
break 的功能是让循环提前结束
实例:找到 100 - 200 中第一个 3 的倍数
public static void main(String[] args) { int num = 100; while (num <= 200) { if (num % 3 == 0) { System.out.println("找到了 3 的倍数, 为:" + num); break; } num++; } }
🍤 运行结果:
执行到 break 就会让循环结束。