for循环
语法:for( 表达式1 ; 表达式2 ; 表达式3 ){
循环体;
}
表达式1:初始化表达式
表达式2:条件表达式
表达式3:迭代表达式(i++,i--)
示例1:1~10之间的整数和
int sum=0;
for (int i = 1; i < 11; i++) {
sum+=i;
}System.out.println("1~10之间的整数和为:"+sum);
循环次数与循环控制变量的关系
循环控制变量的初值 | 循环条件 | 循环控制变量改变 | 循环次数 |
int i = 0 | i < 5 | i++ | 5 |
int i = 0 | i <= 4 | i++ | 5 |
int i = 5 | i > 0 | i-- | 5 |
int i = 4 | i >= 0 | i-- | 5 |
示例2:输出建国以来至今之间的所有闰年(普通闰年:被4整除而且不能被100整除,世纪闰年:被400整除)
System.out.println("输出建国以来至今的所有闰年:\n");
for (int i = 1949; i < 2022; i++) {
if (i%4==0) {
if(i%100!=0) {
System.out.println(i);
}else {
if(i%400==0) {
System.out.println(i);
}
}
}
}
for循环常见问题
- 编译错误:变量i没有初始化
- 表达式1省略,循环变量 赋初始值在for语句之前 由赋值语句完成
- 表达式间的分号不能省略
- 省略表达式3,在循环体内应设法改变循环变量的值以结束循环
- 表达式全省略,无条件判断,循环变量无改变, 应在循环体内设法结束循环;否则会造成死循环
示例3:输入一个学生的三门成绩,使用 for 循环实现求出总成绩
Scanner input=new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name=input.next();
int score,sum=0;
for (int i = 1; i <4; i++) {
System.out.println("请输入你的第"+i+"门专业课成绩:");
score=input.nextInt();
sum+=score;
}
System.out.println(name+"同学的期末考试总成绩为:"+sum);
三种循环的区别
区别1:语法
区别2:执行顺序
- while 循环:先判断,再执行
- do-while循环:先执行,再判断
- for循环:先判断,再执行
区别3:
- 适用情况 循环次数确定的情况,通常选用for循环
- 循环次数不确定的情况,通常选用while或do-while循环
示例4:在控制台中输出100~999之间所有的“水仙花数”。水仙花数是指各位数字的3 次幂之和等于本身的数字。例如:数字153。
System.out.println("输出100~999之间所有水仙花数:");
for (int i = 100; i <1000; i++) {
int s=i%10;
int t=i/10%10;
int h=i/100;
if(s*s*s+t*t*t+h*h*h==i) {
System.out.println(i);
}
}
跳转语句
break(终止整个循环):改变程序控制流程 用于do-while、while、for中时,可跳出循环而执行循环后面的语句
continue(终止当前循环跳到下一次循环):只能用于循环中
continue作用:跳过循环体中剩余的语句而执行下一次循环