Java_从入门到JavaEE_05

本文详细介绍了Java中的for循环、while循环、do-while循环,以及break、continue、return和label等特殊流程控制语句的用法、语法和示例,帮助读者理解循环结构和控制流程的应用。

Day05

一、Java的执行语句(续)

1.循环语句

1.for循环
  1. 语法规则:
    for(表达式1;表达式2;表达式3){
    …代码块/循环体…
    }

  2. 理解:
    表达式1 - 初始化变量
    表达式2 - 判断条件
    表达式3 - 更新变量

  3. 执行步骤:

    1. 初始化变量

    2. 判断条件 - 结果必须是boolean类型
      2.1 true - 执行代码块,更新变量,重复第2个步骤
      2.2 false - 直接跳出循环体

  4. for循环变形:
    int i = 0;
    for(;i<5;){
    System.out.println("用良心做教育 – " + i);
    i++;
    }
    System.out.println(i);

//死循环:
 		for(;;){
 			System.out.println("死循环");
 		}
		for(;true;){
 			System.out.println("死循环");
 		}

 //伪死循环:
 		for(int i = 0;i>=0;i++){
 			System.out.println("伪死循环");
 		}
  1. 案例:循环录入5次int类型的数字,输出总和
import java.util.Scanner;
public class Test{
  public static void main(String[] args){
		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;//sum = (int)(sum+num)
		}
      	System.out.println("总和为:" + sum);
      }
}

小结:

  1. 初始化变量不一定从0开始
  2. 更新变量不一定++
  3. 在for循环中声明的变量只能在当前for循环里使用
  4. for循环里的更新变量中编写i++和++i没有区别
2.for循环嵌套(使用“*”打印三角形)

1.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<3;i++){
				for(int j = 0;j<4;j++){
					System.out.print("*");
				}
				System.out.println();
		}
 }
}

2.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
     for(int i = 0;i<5;i++){
			for(int j = 0;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
 }
}

3.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<5;i++){
			for(int k = 0;k<4-i;k++){
				System.out.print(" ");
			}
			for(int j = 0;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
 }
}

4.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<5;i++){
			for(int j = 0;j<5-i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
 }
}

5.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		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();
		}
 }
}

6.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<4;i++){
			for(int k = 0;k<3-i;k++){
				System.out.print(" ");
			}
			for(int j = 0;j<i*2+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
 }
}

7.打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<4;i++){
			for(int k = 0;k<3-i;k++){
				System.out.print(" ");
			}
			for(int j = 0;j<i*2+1;j++){
				if(i==0 || i==3 || j==0 || j== i*2){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
 }
}

8:打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<4;i++){
			for(int k = 0;k<i;k++){
				System.out.print(" ");
			}
			for(int j = 0;j<7-i*2;j++){
				System.out.print("*");
			}
			System.out.println();
		}
 }
}

9:打印以下图形
在这里插入图片描述

public class Test{
 public static void main(String[] args){
		for(int i = 0;i<4;i++){
			for(int k = 0;k<i;k++){
				System.out.print(" ");
			}
			for(int j = 0;j<7-i*2;j++){
				if(i==0 || i==3 || j==0 || j== 7-i*2-1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
 }
}

10.九九乘法表

 public class Test{
  public static void main(String[] args){
 	for(int i = 1;i<=9;i++){	
 		for(int j = 1;j<=i;j++){
 			System.out.print(j + "x" + i + "=" + (i*j) + "\t");
 		}
 		System.out.println();
 	}
  }
 }
public class Test{
    public static void main(String[] args){
		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 + "=" + (i*j) + "\t");
			}
			System.out.println();
		}
    }
}

运行结果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.while循环
  1. 语法结构:

    while(表达式){

    ​ …代码块…

    }

  2. 理解:表达式的结果必须是boolean类型

    true – 执行代码块

    false - 跳出整个循环

  3. 死循环:

    while(true){

    ​ System.out.println(“死循环”);

    }

  4. 案例:每月存3000,每年递增1000元,多少个月后存满20万

    public class Test{
        public static void main(String[] args){
    			int allMoney = 0;
    			int money = 3000;
    			int month = 0;		
    			while(allMoney < 200000){
    				allMoney += money;
    				month++;
    				if(month % 12 == 0){
    					money+=1000;
    				}
    			}
    		
    		System.out.println(month + "个月后存满20万");
    		System.out.println(money);
        }
    }
    

    小结:while循环可以做到for循环的功能

4.do-while循环
  1. 语法结构:

    do{

    ​ …代码块…

    }while(表达式);

  2. 理解:

    先执行一遍代码块,再判断表达式

    表达式的结果必须是boolean类型

    ​ true – 执行代码块

    ​ false - 跳出整个循环

  3. 小结:

    1. do-while先循环一遍,再判断
    2. 在代码块中声明的变量不能在外面使用
5.for , while 以及 do-while的区别
  1. 表达式的区别:

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

    while(判断条件){}

    do{}while(判断条件);

    注意:三大循环的判断条件,如果是true就执行代码块,如果是false就跳出循环

  2. 执行顺序的区别:

    for:先判断,再执行

    while:先判断,再执行

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

  3. 应用场景的区别:

    for:循环次数确定时

    while:循环次数不确定时,先判断,再执行

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

2.特殊的流程控制语句

1.特殊的流程控制语句 – break
  1. 含义:作用于循环中,表示跳出/结束当前循环

  2. 实验:

    ​ while(true){

    ​ System.out.println(“111”);

    ​ System.out.println(“222”);

    ​ if(true){

    ​ break;

    ​ }

    ​ System.out.println(“333”);

    ​ }

  3. 案例:循环录入学生5门课的成绩并计算平均分,
    如果某分数录入为负,停止录入并提示。

    import java.util.Scanner;
    public class Test{
    public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		boolean flag = true;//true-正常录入   false-非正常录入
    		double sum = 0;
    		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){
    			double avg = sum/5;
    			System.out.println("平均分为:" + avg);
    		}else{
    			System.out.println("分数为负数,停止录入");
    		}
    	}
    }
    
2.特殊的流程控制语句 – continue
  1. 含义:作用于循环中,表示跳过循环体剩余部分,进入到下一次循环中

  2. 实验:

    ​ while(true){

    ​ System.out.println(“111”);

    ​ System.out.println(“222”);

    ​ if(true){

    ​ continue;

    ​ }

    ​ System.out.println(“333”);

    ​ }

  3. 案例:循环录入5名学生的成绩,统计分数大于等于80分的学生比例。

    import java.util.Scanner;
    public class Test{
    public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		boolean flag = true;
    		double a = 5;
    		for(int i = 1;i<=5;i++){
    			System.out.println("请输入第" + i + "个同学成绩:");
    			double score = scan.nextDouble();
    			if(score<80){
    				a--;
    				continue;
    			}
    			if(score < 0){
    				flag = false;
    				break;
    			}	
    		}
    		if(flag){
    			double ratio = a/5*100;
    			System.out.println("大于等于80分的学生比例:" + ratio+"%");
    		}else{
    			System.out.println("分数为负数,停止录入");
    		}
    	}
    }
    
3.特殊的流程控制语句 – return
  1. 含义:作用于方法中,表示结束当前方法

  2. 实验:

    System.out.println(“111”);

    System.out.println(“222”);

    ​ if(true){

    ​ return;

    ​ }

    System.out.println(“333”);

4.特殊的流程控制语句 – label
  1. 理解:给循环做标记

  2. 需求:
    外层循环5次,内层循环3次,当外层循环到第2次时,在内层循环中关闭掉外层循环

    public class Test{
    public static void main(String[] args){
    		a:for(int i = 1;i<=5;i++){
    			for(int j = 1;j<=3;j++){
    				System.out.println(i + " -- " + j);
    				if(i == 2){
    					break a;//跳出指定循环
    				}
    			}
    		}
    	}
    }
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值