3.Java流程控制语句

本文详细介绍了Java的流程控制语句,包括分支结构(如if、if-else、switch)和循环结构(while、for)。通过案例分析了各种结构的使用场景,如比较不同分支选择结构、快速拨号、迷你计算器等。同时,文章还讨论了跳转语句break、continue和return的用法,以及递归算法的概念和应用。
摘要由CSDN通过智能技术生成


传送门


03 Java流程控制语句

  流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。其流程控制方式采用结构化程序设计中规定的三种基本流程结构, 即:顺序结构、分支结构和循环结构,如下图所示:
image-20220113165447707

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

1.1 if单分支选择结构

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

image-20220113165825505

案例1

/*
单分支结构:只做单一条件的判断,如果符合,执行某些事情
 */
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);
    }
}

案例2:抽奖

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部分。

image-20220113171738597

案例1:比较面积与周长

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("周长大于面积");
		}
    }
}   	

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

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位整数");	
		}
	}
}

案例3:幸运抽奖

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

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;
}

案例1:根据年龄进行分类

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("耄耋");
		}
    }
}  

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

  • 成绩>=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("差");
		}
    }
}  

案例3:多重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("买捷安特");
		}
    }
}  

案例4:多重if计算会员折扣

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

image-20220113220257758

public class IfDemo{
   
	public static</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幼稚的人呐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值