JAVA零基础入门第一阶段(5)

java的循环语句

一.for循环

①语法结构

​ for(表达式1;表达式2;表达式3){
​ …代码块…
​ }

②理解

​ 表达式1:初始化变量
​ 第一次运行for循环时才初始化变量
​ 表达式2:判断条件
​ 判断条件结果必须是boolean类型
​ true - 执行代码块
​ false- 跳出循环语句
​ 表达式3:更新变量

③运行步骤

运行步骤:
1.初始化变量
2.判断条件
2.1 true - 执行代码块,再更新变量,重复第2个步骤
2.2 false- 跳出循环语句

④实验
for(int i = 0;i<5;i++){
					System.out.println("小红真可爱..." + i);
				}
⑤死循环

应该避免的错误
for(;😉{
System.out.println(“小红真可爱…”);
}
System.out.println(“死循环以外”);

⑥for循环变形
for循环变形1int i = 0;
for(;i<5;i++){
    System.out.println("小红真可爱..." + i);
}
System.out.println(i);

for循环变形2for(int i = 0;i<5;){
        System.out.println("小红真可爱..." + i);
        i++;
    }

for循环变形3for(int i = 5;i>0;i--){
        System.out.println("小红真可爱..." + i);
    }	

for(int i = 1;i<10;i+=2){
    System.out.println("小红真可爱..." + i);
}

注意:
1.for循环中声明的变量只能在for循环中使用
2.更新变量 i++ 和 ++i没有区别
3.更新变量不局限于++

⑦案例
案例1:循环录入5int类型的数字,输出总和
    Scanner scan = new Scanner(System.in);

	int sum = 0;//总和				
	for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "个数字:");
    int num = scan.nextInt();

    sum += num;
}

	System.out.println("总和为: " + sum);

案例2:循环录入麻生希同学的5门课成绩,计算平均分
    Scanner scan = new Scanner(System.in);

	double sum = 0;

	for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "门成绩:");
    double score = scan.nextDouble();

    sum += score;
}

	System.out.println("平均分为:" + (sum/5));

案例3:循环录入5int类型的数字,输出最大值		
    Scanner scan = new Scanner(System.in);

	System.out.println("请输入第1个数字:");
	int max = scan.nextInt();

	for(int i = 2;i<=5;i++){
    System.out.println("请输入第" + i + "个数字:");
    int num = scan.nextInt();

    if(max < num){
        max = num;
    }
}

	System.out.println("最大值为:" + max);

二.for循环嵌套

①案例
案例1:打印三行四列的长方形
    ****
    ****
    ****
    for(int i = 0;i<3;i++){//控制行数
        for(int j = 0;j<4;j++){//控制列数
            System.out.print("*");
        }
        System.out.println();//换行
    }

案例2:打印三角形
    *
    **
    ***
    ****
    *****
    for(int i = 0;i<5;i++){//控制行数

        for(int j = 0;j<= i;j++){//控制列数
            System.out.print("*");
        }
        System.out.println();//换行
    }

案例3:打印三角形
    *****
    ****
    ***
    **
    *
    for(int i = 0;i<5;i++){//控制行数

        for(int j = 0;j<5-i;j++){//控制列数
            System.out.print("*");
        }
        System.out.println();//换行
    }

案例4:打印三角形
    *****
    ****
    ***
    **
    *	
    for(int i = 0;i<5;i++){//控制行数

        for(int k = 0;k<i;k++){//打印空格
            System.out.print(" ");
        }

        for(int j = 0;j<5-i;j++){//打印星星
            System.out.print("*");
        }
        System.out.println();//换行
    }	

案例5:打印三角形
    *
    ***
    *****
    *******

    for(int i = 0;i<4;i++){
        for(int k = 0;k<3-i;k++){
            System.out.print(" ");
        }
        for(int j = 0;j<2*i+1;j++){
            System.out.print("*");
        }
        System.out.println();
    }	

案例6:打印三角形
    *
    * *
    *   *
    *******  

    for(int i = 0;i<4;i++){
        for(int k = 0;k<3-i;k++){
            System.out.print(" ");
        }
        for(int j = 0;j<2*i+1;j++){
            if(j==0 || j==2*i || i==3){
                System.out.print("*");
            }else{
                System.out.print(" ");
            }
        }
        System.out.println();
    }	

案例7:打印三角形
    *******
    *****
    ***
    *

    for(int i = 0;i<4;i++){

        for(int k = 0;k<i;k++){
            System.out.print(" ");
        }

        for(int j = 0;j<7-2*i;j++){
            System.out.print("*");
        }
        System.out.println();
    }

案例8:打印三角形
    *******
    *   *
    * *
    *
    for(int i = 0;i<4;i++){

        for(int k = 0;k<i;k++){
            System.out.print(" ");
        }

        for(int j = 0;j<7-2*i;j++){
            if(i == 0 || j==0 || j == 7-2*i-1){
                System.out.print("*");
            }else{
                System.out.print(" ");
            }
        }
        System.out.println();
    }  

案例:打印99乘法表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOtaEVuU-1592733172458)(file:///C:\Users\admin\AppData\Local\Temp\ksohtml8760\wps1.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rGUqyNbX-1592733172461)(file:///C:\Users\admin\AppData\Local\Temp\ksohtml8760\wps2.jpg)]

案例1:九九乘法表
    for(int i = 1;i<= 9;i++){

        for(int j = 1;j<= i;j++){
            System.out.print(j + "x" + i + "=" + (j*i) + "\t");
        }
        System.out.println();
    }

案例2:九九乘法表
    for(int i = 1;i<=9;i++){

        for(int k = 1;k<i;k++){
            System.out.print("\t");
        }

        for(int j = i;j<=9;j++){
            System.out.print(i + "x" + j + "=" + (j*i) + "\t");
        }
        System.out.println();
    }	

三.while循环

①语法结构

​ while(表达式){
​ …代码块…
​ }

②理解

表达式的结果一定是boolean类型
true - 执行代码块
false- 跳出循环语句

③死循环

​ while(true){
​ System.out.println(“死循环”);
​ }
​ System.out.println(“循环以外”);

④案例
案例1:我有个梦想,每月存3000,每月递增1000元,多少个月后存满100int allMoney = 0;//总金额
	int money = 3000;//当月存储的金额
	int month = 1;//月

while(allMoney < 1000000){

    allMoney += money;
    money += 1000;
    month++;
}
System.out.println(month + "个月后存满100万");
				
			
案例2:我有个梦想,每月存3000,每年递增1000元,多少个月后存满20int allMoney = 0;//总金额
	int money = 3000;//当月存储的金额
	int month = 1;//月

while(allMoney < 200000){

    allMoney += money;
    if(month % 12 == 0){
        money += 1000;
    }
    month++;
}	
System.out.println(month + "个月后存满20万" + money);

四.do-while循环

①语法结构

​ do{
​ …代码块…
​ }while(表达式);

②理解

先执行一次代码块,在判断表达式,表达式的结果一定是boolean类型
true - 执行代码块
false - 跳出循环语句

③死循环

​ do{
​ System.out.println(“死循环”);
​ }while(true);
​ System.out.println(“循环以外”);

④案例
案例:铃原爱蜜莉参加学校组织的歌咏比赛,大赛在即,老师建议:先彩排一次,如果很令人满意,以后就不用彩排了,否则每天都排,直到现场表现满意为止!
    Scanner scan = new 			 Scanner(System.in);

String str;
do{
    System.out.println("铃原爱蜜莉:旋转、跳跃,我闭着眼...");
    System.out.println("铃原爱蜜莉:老师,你满意了吗?");
    str = scan.next();

}while(str.equals("不满意"));//判断两个字符串内容是否相等

for vs while vs do-while

五.for vs while vs do-while

①语法区别

for(初始化变量;判断条件;更新变量){}

while(判断条件){}
do{}while(判断条件);
注意-共同点:判断条件都是boolean值,true就循环,false就跳出循环语句

②执行顺序区别

​ for:先判断再执行
​ while:先判断再执行
​ do-while:先执行一遍,再判断

③应用场景的区别

for:循环次数确定时
while:循环次数不确定时,先判断再执行
do-while:循环次数不确定时,先执行一遍,再判断

六.特殊的流程控制语句

①break

break:作用于循环里,跳出当前循环

案例:循环录入麻生希同学5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示。
Scanner scan = new Scanner(System.in);

double sum = 0;//总分

boolean flag = true;//默认正常录入

for(int i = 1;i<= 5;i++){
    System.out.println("请输入第" + i + "门成绩:");
    double score = scan.nextDouble();

    if(score < 0){
        flag = false;//非正常录入
        break;//跳出整个循环
    }
    sum += score;
}

if(flag){
    System.out.println("平均分为:" + (sum/5));
}else{
    System.out.println("分数为负数,停止录入");
}
②continue

continue:作用于循环里,跳过剩余的代码块,进入到下一次循环

案例:循环录入Java课5名学生的成绩,统计分数大于等于80分的学生比例。
Scanner scan = new Scanner(System.in);

int num = 0;//记录大于等于80分的学生个数

for(int i = 1;i<=5;i++){
    System.out.println("请输入第" + i + "名学生的成绩:");
    double score = scan.nextDouble();
    if(score < 80){
        continue;
    }
    num++;
}

System.out.println("分数大于等于80分的学生比例为:" + (num/5.0*100) + "%");
③return

return:如果单独写,方法到此结束

            System.out.println("1");
            System.out.println("2");
            return;
            System.out.println("3");
            System.out.println("4");
④label

lable技术:给循环做标记

需求:嵌套for循环,外层循环打印5遍,内层循环打印3遍,
当外层循环到第3遍时,在内层循环中跳出外层循环
		a:for(int i = 1;i<=5;i++){
			for(int j = 1;j<=3;j++){
				
				System.out.println("i=" + i + ",j=" + j);
				if(i == 3){
					
				break a;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值