循环结构
循环就是重复做某一件事情。在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
;
}