资讯详情

3.Java流程控制语句

文章目录

  • 03 Java流程控制语句
    • 1. 分支结构(选择结构)
      • 1.1 if单分支选择结构
      • 1.2 if-else结构选择双分支
      • 1.3 if-else if-else多分支结构
      • 1.4 嵌套if分支结构
      • 1.5 switch多分支选择结构
      • 1.6 比较switch和多重if选择结构
    • 2. 课后分支结构作业
      • 2.1 快速拨号
      • 2.2 迷你计算器
      • 2.3 机票打折
    • 3. 循环结构
      • 3.1 while循环
      • 3.2 for循环
    • 4. 课后循环结构作业
    • 5. 跳转语句break、continue和return
      • 5.1 跳转语句break
      • 5.2 跳转语句continue
      • 5.3 跳转语句return
    • 6.多重循环
    • 7. 递归算法
    • 8. 总结


  • 1.JAVA前瞻
  • 2.JAVA数据类型和操作符
  • 3.Java流程控制语句
  • 4.Java数组
  • 5.Java面向对象编程
  • 6.JAVASE 异常和常用类
  • 7.JAVA容器

03 Java流程控制语句

??流程控制句是用来控制程序中每个句子的执行顺序的句子,可以将句子组合成一个小逻辑模块,可以完成一定的功能。其过程控制模式采用结构化程序设计中规定的三种基本过程结构, 即:,如下图所示: image-20220113165447707

1. 分支结构(选择结构)

1.1 if单分支选择结构

??if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。

/* 单分支结构:只判断单一条件,如果符合,执行某些事情 */ public class ifdemo { 
             public static void main(String[] args) { 
                 //Math.random()生成数据的范围为[0,1)         ///得到0-5之间的随机数         int i = (int)(Math.random() * 6);         if (i>3){ 
                     System.out.println("值大于3");         }         System.out.println("number:" i);     } } 

:抽奖

public class IfDemo{ 
          public static void main(String[] args){ 
        
		//产生三个随机数,范围[0,6)
		double i = 6 * Math.random();
		double j = 6 * Math.random();
		double k = 6 * Math.random();
		int count = (int) (i + j + k);
        
		if(count > 15) { 
        
			System.out.println("今天手气不错");
		}
		if(count >= 10 && count <= 15) { 
        
			System.out.println("今天手气很一般");
		}
		if(count < 10) { 
        
			System.out.println("今天手气不怎么样");
		}
		System.out.println("得了" + count + "分");
    }
}   

条件结果必须是布尔值,建议都加上花括号。如果不加花括号,则只对第一句话有效。写单分支的话需要进行n次的判断,可以用双分支或者多分支结构来代替。

1.2 if-else双分支选择结构

  当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

:比较面积与周长

public class IfDemo{ 
        
	public static void main(String[] args){ 
        
		//双分支结构,比较面积与周长
		int r = 1;
		double PI = 3.14;
		double area = PI * r * r;
		double length = 2 * PI * r;
		if(area >= length){ 
        
			System.out.println("面积大于等于周长");
		}else{ 
        
			System.out.println("周长大于面积");
		}
    }
}   	

:会员信息录入 录入会员信息,判断录入的会员号是否合法

import java.util.Scanner;
public class AddCust{ 
        
	public static void main(String[] args){ 
        
		System.out.println("欢迎光临马士兵教育会员系统");
		System.out.println("添加用户信息");
		//创建Scanner对象(文件扫描器对象)
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入会员号码<4位整数>");
		String number = sc.nextLine();
		System.out.println("请输入会员生日<日/月>");
		String birthday = sc.nextLine();
		System.out.println("请输入会员积分");
		String score = sc.nextLine();
		
		//判断录入的会员号是否合法
		if(number.length()==4){ 
        
			System.out.println("会员信息如下");
			System.out.println(number+"\t"+birthday+"\t"+score);
		}else{ 
        
			System.out.println("会员号码输入错误,请输入4位整数");	
		}
	}
}

:幸运抽奖

抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员

import java.util.Scanner;

public class Lottery { 
        
	public static void main(String[] args){ 
        
		System.out.println("欢迎登陆马士兵教育抽奖系统");
		//创建文件扫描器对象,System.in表示的是标准输入,可以从控制台读取数据(装饰者模式)
		Scanner sc=new Scanner(System.in);		
		//会员号的百位数字等于产生的随机数字即为幸运会员来进行抽奖
		System.out.println("请输入4位会员卡号:");
		//键入4位会员号码
		int card=sc.nextInt();
		//因为是4位数,所以限制输入在1000-9999之间
        if(card>=1000 && card<=9999){ 
        
        	//得到输入的数中的百位数字
            int bai=card/100%10;
            //得到随机数n,n每一次都会取值0-9中的任意一个
            int n=(int)(Math.random()*10);
   			//如果会员号的百位数字等于产生的随机数字,则为幸运会员
            if(bai==n){ 
        
            	System.out.println(card+"号客户是幸运会员。");
            }else{ 
        
            	System.out.println(card+"号客户,谢谢您的支持!");
			}
		}
	}
}

:Scanner类,文件扫描器对象

import java.util.Scanner;

public class IfDemo{ 
        
	public static void main(String[] args){ 
        
		//Scanner
		//创建文件扫描器对象,System.in表示的是标准输入,可以从控制台读取数据(装饰者模式)
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入数据");
		
		//nextLine用于读取一整行的数据
		//注意:每次读取回来的值都是字符串类型,需要进行类型转换
		String str = sc.nextLine();
		System.out.println(str);
    }
}  

1.3 if-else if-else多分支结构

  逐条if语句进行判断,条件匹配进入语句体,否则对if语句继续匹配。可以进行多个条件的判断,每个匹配项可以选择不同的执行结果。其语法格式为:

if(布尔表达式1){ 
        
	语句块1;
}else if(布尔表达式2){ 
        
	语句块2;
}else{ 
        
	语句块n;
}

:根据年龄进行分类

public class IfDemo{ 
        
	public static void main(String[] args){ 
        			
		//多分支结构
		int age = (int)(Math.random()*10);
		if(age<10){ 
        
			System.out.println("儿童");
		}else if(age<20){ 
        
			System.out.println("少年");
		}else if(age<30){ 
        
			System.out.println("青年");
		}else if(age<50){ 
        
			System.out.println("中年");
		}else if(age<70){ 
        
			System.out.println("老年");
		}else{ 
        
			System.out.println("耄耋");
		}
    }
}  

:对学员的结业考试成绩评测

  • 成绩>=90:优秀
  • 成绩>=80:良好
  • 成绩>=60:中等
  • 成绩<60:差
public class IfDemo{ 
        
	public static void main(String[] args){ 
        			
		//多分支结构
		int score = (int)(Math.random()*100);
		if(score>=90){ 
        
			System.out.println("优秀");
		}else if(score>=80){ 
        
			System.out.println("良好");
		}else if(score>=60){ 
        
			System.out.println("中等");
		}else{ 
        
			System.out.println("差");
		}
    }
}  

:多重if买车问题

我想买车,买什么车决定于我在银行有多少存款

  • 如果我的存款超过500万,我就买凯迪拉克

  • 否则,如果我的存款超过100万,我就买帕萨特

  • 否则,如果我的存款超过50万,我就买依兰特

  • 否则,如果我的存款超过10万,我就买奥托

  • 否则,我买捷安特

public class IfDemo{ 
        
	public static void main(String[] args){ 
        			
		//多分支结构
		int save = 1500000;
		if(save>=5000000){ 
        
			System.out.println("买凯迪拉克");
		}else if(save>=1000000){ 
        
			System.out.println("买帕萨特 ");
		}else if(save>=500000){ 
        
			System.out.println("买依兰特");
		}else if(save>=100000){ 
        
			System.out.println("买奥托 ");
		}else{ 
        
			System.out.println("买捷安特");
		}
    }
}  

:多重if计算会员折扣

需求说明: 会员购物时,根据积分的不同享受不同的折扣,计算会员购物时获得的折扣

public class IfDemo{ 
        
	public static void main(String[] args){ 
        			
		//多分支结构
		int score = (int)(Math.random()*10000);
		if(score>=8000){ 
        
			System.out.println("享受6折折扣");
		}else if(score>=4000){ 
        
			System.out.println("享受7折折扣");
		}else if(score>=2000){ 
        
			System.out.println("享受8折折扣");
		}else{ 
        
			System.out.println("享受9折折扣");
		}
    }
}  

1.4 嵌套if分支结构

  在分支结构中嵌套分支结构。嵌套的层数并没有限制。其格式为:

if(条件1){ 
        
	if(条件2){ 
        
	代码块1
	}else{ 
        
		代码块2
	}
}else{ 
        
	代码块3
}

学校举行运动会,百米赛跑跑入20秒内的学生有资格进决赛,根据性别分别进入男子组和女子组,要判断是否能够进入决赛,在确定进入决赛的情况下,还要判断是进入男子组,还是进入女子组。

public class IfDemo{ 
        
	public static void main(String[] args){ 
        		
		//嵌套分支结构
		int time = (int)(Math.random()*20);
		if(time<20){ 
        
			System.out.println("恭喜进入决赛");
            //三目运算符
			String sex = ((int)(Math.random()*2))==0?"girl":"boy";
			if(sex=="girl"){ 
        
				System.out.println("欢迎进入女子组");
			}else{ 
        
				System.out.println("欢迎进入男子组");
			}
		}else{ 
        
			System.out.println("成绩太差,被淘汰");
		}
    }
}  		

:折扣计算

需求说明: 普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折

import java.util.Scanner;

public class Discount { 
        

	public static void main(String[] args) { 
        
		//键盘录入信息,并获取所录的信息
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入您是否为会员:");
		String member = sc.nextLine();
		System.out.println("请输入购买金额:");
		double money = sc.nextDouble();
		//通过if-else嵌套语句来进行判断
		if(member == 'yes'){ 
        
			if(money>=200){ 
        
				System.out.println("尊敬的会员,您好,您实际应付的金额为"+money*0.75);
			}else{ 
        
				System.out.println("尊敬的会员,您好,您实际应付的金额为"+money*0.8);	
			}
		}else{ 
        
			if(money>=100){ 
        
				System.out.println("尊敬的顾客,您好,您实际的应付金额为"+money*0.9);
			}else{ 
        
				System.out.println("尊敬的顾客您好,您应付的金额为"+money);
			}			
		}		
	}
}

1.5 switch多分支选择结构

  根据表达式值的不同,执行许多不同的操作。switch一般用作等值判断。其格式为:

switch(表达式){ 
        
	case 值1;
	语句序列;
	[break];
	case 值2;
	语句序列;
	[break];
	...
	[default:
	默认语句;]
}
  1. switch语句会根据表达式的值从相匹配的执行,一直执行到break标签处开始ak语句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果有的话)

  2. 只能处理的情况,且表达式必须为byte,short,int或char类型 ,不能是String或 double,float。(1.7之后可以使用string)

  3. 常量值必须是与表达式类型兼容的特定的一个常量

  4. 不允许有重复的case值

  5. default子句为可选

:判断元音、半元音、辅音

public class IfDemo{ 
        
	public static void main(String[] args){ 
        		
		//switch多分支结构
		/*注意: 1、每个case模块中要添加break,防止多次匹配 2、如果多个case中处理的逻辑代码块的功能一致,可以考虑只在最后添加一次处理 3、default表示默认选项,当所有的case不匹配的时候,会执行此选项 4、defult可以有,也可以没有 */
		int random = (int)(Math.random()*26);
		char ch = (char)('a'+random);
		switch(ch){ 
        
			/* case 'a': Syste

标签: passat氧传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台