2.7 while 、for 循环控制语句

时间:2021-03-10 07:12:26

一、while语句:

  在程序中,需要重复性的做某件事;

1.1.1 while:

public class Test{
public static void main(String[] args){ // 求1-5所有整数的和
// 0+1+2+3+4+5
int i = 1; //变量初始化
int sum = 0;
while(i <= 5//控制循环条件){
sum = sum + i;//循环操作
i++;//循环条件变化
}
System.out.println("sum = " + sum);
}
}

while

1.1.2 while与 if 的结合使用:

public class Test15{
public static void main(String[] args){
// 求1-10所有偶数的和
int j = 1;
int sum = 0;
while(j <= 10){
// 业务逻辑:求偶数的和
if(j % 2 == 0){
sum += j;
}
j++;
}
System.out.println("sum = " +sum);
}
}

while、if

1.1.3 while的嵌套循环:

  外层循环执行一次,内层循环支持n次;

  双层循环解决了需要进行循环嵌套的问题 => 二维结构 => 表格结构;

  外层循环控制行,内层循环控制列;

public class Test01{
public static void main(String[] args){ int i = 1;
while(i<=3){ int j = 1;
while(j <= 4){
System.out.print("* ");
j++;
}
System.out.println(); i++;
}
}
}

while、while

1.2 do···while:

public class Test{
public static void main(String[] args){
int sum = 0;
int i = 1;//变量初始化
do{
if(i % 2 == 0){
sum += i;//循环操作
}
i++;//循环控制变化
}while(i<=10//循环控制条件);
System.out.println(""+sum);
}
}

do while

while 与 do···while 的区别:

  do…while循环先执行,后判断;while先判断,后执行。dowhile至少执行一次。

2.1 for 循环:

2.1.1普通 for 循环:

public class Test{
public static void main(String[] args){ //(变量初始化;循环控制条件;循环控制变化)
for(int i=0;i<=10;i++){
System.out.println(i);//循环操作
}
}
}

for

2.1.2 双层for循环:

        for(int i=1;i<=3;i++){

            for(int j=1;j<=4;j++){
System.out.print("* ");
}
System.out.println();
}

for、for

2.1.3  复杂的for循环:

    int num = 10;
for(int i=0,j=num;i<=num;i++,j--){
System.out.println(i+"+"+j+"="+(i+j));
}

2.1.4 特殊的for循环:

public class Test13{
public static void main(String[] args){ // [1]表达式1在for循环外声明
/*
int sum = 0;
int i = 1;
for(;i<=10;i++){
sum += i;
}
System.out.println("i="+i);
System.out.println("sum = " + sum);
*/ // [2]省略表达式2 ==> 死循环
/*
int sum = 0;
for(int i = 1;;i++){
sum += i;
System.out.println("sum="+sum);
}
*/
// System.out.println("sum = " + sum); // [3]省略表达式3 => 可能导致死循环
/*
int sum = 0;
for(int i = 1;i<=10;){
sum += i;
System.out.println("sum="+sum); i++;
}
*/ int sum =0;
int i = 1;
for(;i<=10;){
sum += i;
System.out.println("sum="+sum); i++;
}
}
}
    //死循环
for(;;){
}

总结:while和for

  [1]while和for可以相互替换;

  [2]如果明确知道循环次数,一定要for;如果不知道循环次数,优先使用while;