java选择结构

一、if分支语句

if分支语句是一种在编程中常用的条件语句,用于根据特定条件的真假来执行不同的代码块。

if 条件:
    执行代码块1
else:
    执行代码块2

首先,条件会被评估为真或假。如果条件为真,那么执行代码块1;如果条件为假,那么执行代码块2。

在某些情况下,你可能还想要添加更多的条件分支。这时可以使用elif关键字,它可以用来检查额外的条件。

if 条件1:
    执行代码块1
elif 条件2:
    执行代码块2
else:
    执行代码块3

在这个示例中,如果条件1为真,则执行代码块1;如果条件1为假,但条件2为真,则执行代码块2;如果条件1和条件2都为假,则执行代码块3。

if分支语句可以根据不同的条件来执行不同的代码,这使得程序可以根据不同的情况做出不同的响应。

练习实例:输入两个整数,显示两个数中较大的数(请使用单分支实现)。

import java.util.Scanner;

public class Size_ratio {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个整数");
		int num1=scan.nextInt();
		System.out.println("请输入第二个整数");
		int num2=scan.nextInt();
		int max = num1;
		if (num2>max){
			num2=max;
		}
			System.out.println("最大值为:"+max);
		
		
		
	}

}

二、switch多分支语句

在处理多个条件分支时,if-else语句是一种常见的选择。然而,当条件分支较多时,if-else语句可能会显得冗长且难以维护。这时,switch多分支语句就能派上用场。

switch语句是一种在许多编程语言中常见的条件语句,它能根据一个表达式的值,将控制流转移到与该值匹配的不同分支。相比于if-else语句,switch语句可以提供更简洁、易读的代码结构。

switch 表达式:
    case 值1:
        执行代码块1
        break
    case 值2:
        执行代码块2
        break
    ...
    default:
        执行默认代码块

首先,表达式的值会被评估。然后,程序会依次检查每个case语句,如果某个case的值与表达式的值匹配,那么执行对应的代码块。每个case后面通常会有一个break语句,用于跳出switch语句,防止执行其他case的代码块。

switch后的表达式为整型(long除外)、字符型、字符串和枚举类型。当表达式的值与case后的常量表达式的值相等时,则执行该case后的语句序列。执行完后退出switch语句,跳转到整个switch语句之后的下一个语句执行。如果所有的case语句的常量表达式的值与switch之后的表达式不匹配,则执行default之后的语句序列。各case语句之后的常量表达式的值不能相同。如果某个case语句最后的break语句被省略,则执行完该case语句之后,系统则会继续执行下一个case语句。多个case语句可以共用一-组执行语句。

 switch语句实例

编写一个程序,要求用户输入传统节日的名称,然后根据输入的
信息,在控制台输出2023年对应的日期,如果没有该节日的信息,
输出“输入的节日有误或暂无该节日的日期信息”。(使用switch语
句实现)

import java.util.Scanner;

public class TraditionalFestivals {
	
	public static void main(String[] args) {
		        Scanner scanner = new Scanner(System.in);
		        System.out.print("请输入传统节日的名称:");
		        String holiday = scanner.nextLine();

		        int year = 2023;
		        String date;

		        switch (holiday) {
		            case "春节":
		                date = "2023年1月22日";
		                break;
		            case "元宵节":
		                date = "2023年2月5日";
		                break;
		            case "清明节":
		                date = "2023年4月4日";
		                break;
		            case "端午节":
		                date = "2023年6月13日";
		                break;
		            case "中秋节":
		                date = "2023年9月30日";
		                break;
		            case "国庆节":
		                date = "2023年10月1日";
		                break;
		            default:
		                date = "输入的节日有误或暂无该节日的日期信息";
		                break;
		        }

		        System.out.println(date);
		    	
	}

}

三、分支嵌套

当我们编写程序时,经常会遇到需要根据不同的条件执行不同的代码块的情况。在某些情况下,简单的条件判断可能无法满足我们的需求,这时候就需要使用分支嵌套。

分支嵌套是指在一个条件语句的代码块中再嵌套另一个条件语句的代码块。通过嵌套多个条件语句,我们可以根据更复杂的条件逻辑来执行不同的代码。

让我们来看一个简单的例子来理解分支嵌套的概念。假设我们要编写一个程序,根据用户输入的成绩来判断他们的等级。如果成绩大于等于90分,等级为A;如果成绩在80到89之间,等级为B;如果成绩在70到79之间,等级为C;如果成绩在60到69之间,等级为D;否则,等级为F。

使用分支嵌套,我们可以这样实现:

score = 用户输入的成绩

if score >= 90:
    等级 = "A"
else:
    if score >= 80:
        等级 = "B"
    else:
        if score >= 70:
            等级 = "C"
        else:
            if score >= 60:
                等级 = "D"
            else:
                等级 = "F"

在这个例子中,我们首先使用if语句判断成绩是否大于等于90,如果是,那么等级为A。如果不是,我们进入第一个else语句,然后再使用if语句判断成绩是否大于等于80,如果是,等级为B。以此类推,我们通过嵌套的if-else语句来逐层判断成绩的范围,并确定最终的等级。

分支嵌套可以帮助我们处理更复杂的条件逻辑,但需要注意的是,过多的嵌套可能会导致代码可读性下降。为了避免过度嵌套,我们可以使用其他的条件结构,如switch语句或者逻辑运算符来简化代码。

实例:1.某餐馆规定在工作日,如果订餐人数大于10 ,优惠30%,否则优
惠20% ;双休日,如果订餐人数大于20 , 优惠15% ,否则优惠5%。
设计程序,输入星期几及人数,输出优惠率,如果人数或星期输入
错误提示出错信息。( 输入整数1-7 ,表示星期一到星期天)

import java.util.Scanner;

public class OrderFood {

	public static void main(String[] args) {
		
		        Scanner scanner = new Scanner(System.in);

		        System.out.print("请输入星期几(1-7):");
		        int dayOfWeek = scanner.nextInt();

		        System.out.print("请输入订餐人数:");
		        int numberOfPeople = scanner.nextInt();

		        double discount = 0;

		        if (dayOfWeek >= 1 && dayOfWeek <= 5) { // 工作日
		            if (numberOfPeople > 10) {
		                discount = 0.3;
		            } else {
		                discount = 0.2;
		            }
		        } else if (dayOfWeek >= 6 && dayOfWeek <= 7) { // 双休日
		            if (numberOfPeople > 20) {
		                discount = 0.15;
		            } else {
		                discount = 0.05;
		            }
		        } else {
		            System.out.println("输入错误,请输入1-7之间的整数表示星期几。");
		            System.exit(0);
		        }

		        System.out.println("优惠率:" + (discount * 100) + "%");

		        scanner.close();
		
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值