循环语句:
for循环的使用
语法格式:
for(表达式1;表达式2;表达式3){
……循环体……
}
* 表达式1 :初始化变量
* 表达式2:判断条件--结果必须为boolean类型
1. true——>执行循环体
2. false——>跳for循环
* 表达式3:更新变量
执行顺序:
- 先初始化变量
- 判断循环条件是否成立
- 成立则执行循环体,然后再执行2
- 不成立跳出循环
使用测试:
//测试:打印5遍HelloWorld
for(int i=0;i<5;i++){
System.out.println("HelloWorld");
}
案例:
//案例1:循环录入5次int类型的数字,输出总和
Scanner sc = new Scanner(System.in);
int sum = 0; //用来存储和
for(int i=0;i<5;i++){
System.out.println("请输入第"+i+"个数:");
int number = sc.nextInt();
sum +=number;
}
System.out.println("总和为:"+sum);
//输入5个数求最大值
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个数:");
int max = sc.nextInt(); //将第一个值赋值给max用来跟其他输入的数字进行比较
for(int i=2;i<=5;i++){
System.out.println("请输入第"+i+"个数:");
int number = sc.nextInt();
if(max<number){
max = number;
}
}
System.out.println("最大的数为"+max);
总结:
- 重复性的工作就可以考虑用循环来做
- 循环的好处是可以减少代码的冗余
- 在循环中定义的变量时局部变量,不能在循环外使用
- for循环中更新变量++i和i++一样,没有区别
for循环嵌套
案例:
//需求:打印以下图形
*
**
***
****
*****
for(int i = 0;i<5;i++){
for(int j =0;j<=i){
System.out.print("*");
}
Syetem.out.print("\n");
}
while循环
语法结构
while(表达式){
……循环体……
}
-
表达式的值必须是boolean类型
true—执行循环体
false—跳出循环体
-
死循环:
-
while(true){ ……代码块…… } //无法自己结束循环
案例:
//案例:我有个梦想,每月存3000,每年递增1000元,多少个月后存满20万
int money = 3000;
int Allmoney = 0;
int month = 0;
while(Allmoney<200000){
Allmoney+=money;
month+=1;
if(month%12==0){
money+=1000;
}
}
System.out.println(month+"月后攒够20万");
System.out.println(money);
do-while 循环
语法结构:
do{
……循环体……
}while(表达式)
-
先执行一边循环体,然后再进行判断
-
表达式的值必须是boolean类型
true—执行循环体
false—跳出循环体
-
死循环:
do{ System.out.println("死循环"); }while(true);
案例:
案例:小明参加学校组织的歌咏比赛,大赛在即,老师建议:先彩排一次,
如果很令人满意,以后就不用彩排了,否则每天都排,直到现场表现满意为止!
Scanner sc = new Scanner(System.in);
String str ;
do{
System.out.println("唱歌中~~~~");
System.out.println("是否满意?");
str =sc.next();
}while(str.equals("不满意"));
三种循环体的比较
-
表达式的不同
- for(初始化变量;判断条件;更新变量){}
- while(判断条件){}
- do{}while(判断条件);
- 共同点:判断条件的结果必须是boolean,true就循环,false就结束循环
-
执行顺序的不同
- for:先判断,后执行
- while:先判断后执行
- do-while:先执行一次,再判断
-
应用场景的不同
- for:循环次数确定时
- while:循环次数不确定时
- do-while:循环次数不确定,要先执行,再判断时