循环结构


循环就是重复做某一件事情。在Java程序中,循环控制即在某一情况下,控制程序重复执行某一条或多条语句,直到遇到终止条件为止



循环语句也称迭代语句,在 Java 语言中存在的 while 、 for 和 do-while 循环语句




while循环


while 是 Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环 体一次都不执行。


 


语法:


while( 条件 ){ 循环体 ;} 当条件成立时反复执行循环体,每执行一次判断一次条件。




int res=0;//累加器,用于存放每次循环体的执行结果 
int k=1;//控制循环次数 
while(k<101){ 
    res=res+k; 
    k++; 
}
System.out.println("1+2+3+...+100="+res);
int res = 0;// 累加器,用于存放每次循环体的执行结果 
int k = 0;// 控制循环次数 
while (k++ < 100) 
    res += k; 
System.out.println("1+2+3+...+100=" + res);
int res = 0;// 累加器,用于存放每次循环体的执行结果 
int k = 0;// 控制循环次数 
while (++k <= 100) 
    res += k; 
System.out.println("1+2+3+...+100=" + res);
int res = 0;// 累加器,用于存放每次循环体的执行结果 
int k = 1;// 控制循环次数 
while(true){//这个写法一般用于没有很明确的次数控制时 
    res+=k; 
    if(++k>100) 
        break; //当满足条件则跳出while循环体 
}
System.out.println("1+2+3+...+100="+res);



没有很明确的次数控制




需求:要求输入一个合法的年龄值【和业务需求相关】
 

int age=0;
while(true){
System.out.println("请输入学生年龄:");
age=sc.nextInt();
if(age>=18 && age<=24)
break;
else
System.out.println("您输入的是"+age+",这是一个不合法的年龄");
}

需求:计算所有100以内奇数的和



int res=0; //累加器
int k=0; //循环控制变量
while(++k<101){
    if(k%2==1)
        res+=k;
}
System.out.println("1+3+5+...+99="+res);

break和continue的用法

int res=0;
int k=0;
while(true){
    if(++k>100){
        break; //跳出循环体,执行循环体后的语句
    }
    if(k%2==0){ //如果是偶数不进行累加操作,而是从新开始后续的循环,continue之后的语句不执
行,从头开始下次循环
        continue; //终止本次循环,立即进入下次循环
    } else{
        res+=k; //res=res+k
    }
    System.out.print(k+"+");
}
System.out.println("="+res);



break和continue的区别:


        1、break是立即终止循环,进入循环结构的后续代码继续执行 , 循环体执行结束


        2、continue是终止本次循环,进入下次循环,循环并没有执行结束


 

do/while循环


语法:


do{ 循环体 ; }while( 条件 ) ;


先执行循环体,然后进行条件判断,如果条件为 true ,则执行下次循环;如果条件为false 则终止循环。


        1、不同于while 循环的点: do/while 循环至少执行循环体一次,而 while 循环有可能一次都不执行 .




for循环


语法: for( 表达式 1 ;表达式 2 ;表达式 3){ 循环体 ;}


        执行表达式1


        执行表达式2 ,一般表达式 2 是一个条件,如果条件为 true 则执行循环体;如果条件为 false则终止循环


        执行循环体


        执行表达式3


        执行第2 步骤
 



for 循环一般用于可以明确循环次数的场景中; while循环一般用于不能预先确定循环执行次数的场景中; do/while 循环一般用于不能预先确定循环执行次数,同时要求循环体至少执行一次的场景中



int res=0; 
for(int i=1;i<=100;i++){ 
    res+=i; 
}
System.out.println(res);



省略表达式的写法

 


int  
   k 
   = 
   1 
   ; 
 
  
for 
   (; 
   k 
   < 
   101 
   ; 
   k 
   ++ 
   )
          
   res 
   += 
   k 
   ;
int k=1; 
 
 
for 
  (; 
  k 
  < 
  101 
  ;) 
 
 
         
  res 
  += 
  k 
  ++ 
  ; 
int  
  k 
  = 
  1 
  ; 
 
 
for 
  (;;) { 
 
 
        res 
  += 
  k 
  ++ 
  ; 
 
 
        if 
  ( 
  k 
  > 
  100 
  )  
  break 
  ; 
 
 
}