1、循环语句就是让计算机依据条件做循环计算,在条件满足时继续循环,条件不满足时,退出循环。
while条件循环就是一种循环方式。
格式: while(条件){ //循环语句 }
1 public class Main {
2 public static void main(String[] args) {
3 int sum = 0; // 累加的和,初始化为0
4 int n = 1;
5 while (n <= 100) { // 循环条件是n <= 100
6 sum += n; // 把n累加到sum中
7 n ++; // n自身加1
8 }
9 System.out.println(sum); // 5050
10 }
11 }
要避免死循环,若while循环是个死循环,java的int类型有最大值,达到最大值后,再加就会变成负数,结果可能会意外退出while循环。
2、练习:使用while循环计算从m到n的和
1 public class Main {
2 public static void main(String[] args) {
3 int sum=0;
4 int m=20;
5 int n=100;
6 while(m<=n) {
7 sum+=m;
8 m++;
9 }
10 System.out.println("m到n的和为:"+sum);
11 }
12 }
3、do while循环
while循环先判断循环条件,再执行循环,而do while循环则是先执行循环,在判断条件,条件满足就继续循环,不满足就退出循环。
格式:do{
//循环语句
}while(条件表达式);
1 public class Main {
2 public static void main(String[] args) {
3 int sum = 0;
4 int n = 1;
5 do {
6 sum = sum + n;
7 n ++;
8 } while (n <= 100);
9 System.out.println(sum);
10 }
11 }
1 //计算从m到n的和
2 public class Main {
3 public static void main(String[] args) {
4 int sum = 0;
5 int m = 20;
6 int n = 100;
7 // 使用do while计算M+...+N:
8 do {
9 sum+=m;
10 m++;
11 }while(m<=n);
12 System.out.println(sum);
13 }
14 }
4、for循环:使用计数器实现循环。for循环会先初始化计数器,,然后再每次循环前检测循环条件,在每次循环后更新计数器,计数器变量通常命名为i.
格式:for(初始条件;循环检测条件;循环后更新计数器){ //执行语句; }
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=100; i++) {
sum = sum + i;
}
System.out.println(sum);
}
}
1 //对一个整型数组的所有元素求和
2 public class Main {
3 public static void main(String[] args) {
4 int[] ns = { 1, 4, 9, 16, 25 };
5 int sum = 0;
6 for (int i=0; i<ns.length; i++) {
7 System.out.println("i = " + i + ", ns[i] = " + ns[i]);
8 sum = sum + ns[i];
9 }
10 System.out.println("sum = " + sum);
11 }
12 }
5、for each循环:遍历数组时,可以访问每个元素的值。相比for循环,for each循环的变量n不再是计数器,而是直接对应到数组的每个元素。但是这个循环无法指定遍历顺序,也无法获取数组的索引。
除了数组外,for each循环能遍历所有“可迭代”的数据类型,包括后面介绍的List、Map等。
格式:for(type 元素:数组名){ //循环语句 }
1 public class Main {
2 public static void main(String[] args) {
3 int[] ns = { 1, 4, 9, 16, 25 };
4 for (int n : ns) {
5 System.out.println(n);
6 }
7 }
8 }
6、练习
1 //给定一个数组,用for循环倒序输出每一个元素
2 public class Main {
3 public static void main(String[] args) {
4 int[] nums= {1,5,6,7,8,9,3};
5 for(int i=nums.length-1;i>=0;i--) {
6 System.out.print(nums[i]+" ");
7 }
8 }
9 }
// 利用 for each循环对数组每个元素求和
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
int sum = 0;
for(int i:nums) {
sum+=i;
//i++;
}
System.out.println(sum); // 55
}
}
6、break和continue
* break是跳出当前循环;
* continue是提前结束本次循环,直接进入下一循环
1 public class Main {
2 public static void main(String[] args) {
3 int sum = 0;
4 for (int i=1; i<=10; i++) {
5 System.out.println("begin i = " + i);
6 if (i % 2 == 0) {
7 continue; // continue语句会结束本次循环
8 }
9 sum = sum + i;
10 System.out.println("end i = " + i);
11 }
12 System.out.println(sum); // 25
13 }
14 }