2.4 选择结构语句

news2024/11/26 2:40:19

选择结构语句根据是否满足某个条件确定执行哪些操作,分为if条件语句和switch条件语句。

1. 单分支if语句

(1)if语句是指如果满足某种条件,就进行某种处理,格式如下。

if(条件) {
    // 执行语句
}

根据上述格式中,判断条件是一个布尔值,当判断条件为true时,{}中的执行语句才会执行。if语句的执行流程如下所示。

(2)单分支if案例

编写程序,从键盘上读取一个整数,若该数是偶数,输出该数。

public static void main(String[] args) {
    int num;
    Scanner input = new Scanner(System.in);
    System.out.print("请输入一个整数:");
    num = input.nextInt();
    if(num % 2 == 0){
        System.out.println(num + "是偶数.");
    }
}

2. 双分支if-else语句

(1)if…else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,格式如下。

if(条件) {
    // 执行语句1
}else{
    // 执行语句2
}

在上述格式中,判断条件是一个布尔值。当判断条件为true时,if后面{}中的执行语句1会执行。当判断条件为false时,else后面{}中的执行语句2会执行。执行流程如下所示。

(2)双分支if-else案例

编写程序,从键盘上读取一个整数,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。

public static void main(String[] args) {
    int num;
    Scanner input = new Scanner(System.in);
    System.out.print("请输入一个整数:");
    num = input.nextInt();
    if(num % 2 == 0){
        System.out.println(num + "是偶数.");
    }else {
        System.out.println(num + "是奇数.");
    }
}

3. 嵌套的if语句

(1)嵌套的if语句概述

if或if-else结构中语句可以是任意合法的Java语句,甚至可以是其他的if或if-else结构,内层的if结构称为嵌套在外层的if结构中,格式如下。

if (判断条件){
    if (判断条件){
        执行语句1
    }else{
        执行语句2
    }
}

(2)嵌套的if语句案例

求a、b和c中最大值并将其保存到max中,要求使用一个嵌套的if结构。

public static void main(String[] args) {
    int max;
    Scanner input = new Scanner(System.in);
    System.out.println("请输入a:");
    int a = input.nextInt();
    System.out.println("请输入b:");
    int b = input.nextInt();
    System.out.println("请输入c:");
    int c = input.nextInt();
    if(a > b){ //a大 再比较 c
        if(a > c){
            max = a;
        }else{
            max = c;
        }
    }else{  //b大 再比较 c
        if(b > c){
            max = b;
        }else{
            max = c;
        }
    }
    System.out.println("最大值是:" + max);
}

4. 多分支的if-else语句

(1)多分支的if-else概述

如果程序逻辑需要多个选择,可以在if语句中使用一系列的else if语句,这种结构称为阶梯式if-else结构,格式如下。

if (判断条件1){
    执行语句1
} else if (判断条件2){
    执行语句2
}else if (判断条件n) {
    执行语句n
}else {
    执行语句n+1
}

(2)多分支的if-else语句案例

输入学生的百分制成绩,打印输出等级的成绩。等级规定为,90分(包括)以上的为“优秀”,80分(包括)以上的为“良好”,70分(包括)以上的为“中等”,60分(包括)以上的为“及格”,60分以下为“不及格”。

要求:输入语句为“请输入张三同学的成绩:”,其中“张三”为本人姓名。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("请输入张三的成绩:");
    double score = input.nextDouble();
    String level = "";
    if(score > 100 || score < 0){
        System.out.println("输入的成绩不正确。");
        System.exit(0);
    }else if(score >= 90){
        level = "优秀";
    }else if(score >= 80){
        level = "良好";
    }else if(score >= 70){
        level = "中等";
    }else if(score >= 60){
        level = "及格";
    }else{
        level = "不及格";
    }
    System.out.println("张三的成绩等级为" + level);
}

5. 条件运算符

(1)条件运算符概述

Java提供了一个三元运算符,可以同时操作三个表达式,三元运算符语法格式如下所示。

判断条件 ? 表达式1 : 表达式2

在上述语法格式中,当判断条件为true时,计算表达式1的值作为整个表达式的结果,否则计算表达式2的值作为整个表达式的结果。

(2)条件运算符案例

条件运算符可以实现if-else结构,分别用if-else和条件运算符求整数a、b两个数中的最大值。

  • if-else方式实现

public static void main(String[] args) {
    int x = 0;
    int y = 1;
    int max;
    if (x > y) {
        max = x;
    } else {
        max = y;
    }
    System.out.println(max);
}
  • 条件运算符方式实现

public static void main(String[] args) {
    int x = 0;
    int y = 1;
    int max = x > y? x : y;
    System.out.println(max);
}

6. switch语句

(1)switch语句格式

switch 条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。一般格式如下:

switch (expression){
   case value1:
      statements  [break;]
   case value2:
      statements  [break;]
   …
   case valueN:
      statements  [break;]
   [default:
      statements]
}

(2)switch语句注意事项

expression是一个表达式,它的值必须是byte、short、int、char、enum、String。

case后的value为常量或常量表达式,与表达式类型相一致,expression与value值比较,如果两值相等会执行该case后的语句。

break语句功能是退出switch语句。

default为可选子句,如果expression与value都不匹配,则执行default语句。

(3)switch语句案例

  • 使用switch语句根据给出的数值输出对应中文格式的星期。

public static void main(String[] args) {
    int week = 5;
    switch (week) {
        case 1:
            System.out.println("星期一");
            break;
        case 2:
            System.out.println("星期二");
            break;
        case 3:
            System.out.println("星期三");
            break;
        case 4:
            System.out.println("星期四");
            break;
        case 5:
            System.out.println("星期五");
            break;
        case 6:
            System.out.println("星期六");
            break;
        case 7:
            System.out.println("星期七");
            break;
        default:
            System.out.println("输入的数字不正确...");
            break;
    }
}
  • 使用switch语句根据给出的数值输出对应工作日还是休息日。

public static void main(String[] args) {
    int week = 2;
    switch (week) {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            System.out.println("今天是工作日");// 当 week 满足值 1、2、3、4、5 中任意一个时,处理方式相同
            break;
        case 6:
        case 7:
            System.out.println("今天是休息日");// 当 week 满足值 6、7 中任意一个时,处理方式相同
            break;
    }
}

7. 练习

编写程序,从键盘输入一个农历月份,输出该月所在的季节。

春,农历1、2、3月;夏,农历4、5、6月;秋,农历7、8、9月;冬,农历的10、11、12月。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("请输入农历月份:");
    int month = input.nextInt();
    String season = "";
    switch (month){
        case 1:
        case 2:
        case 3:
            season = "春季";
            break;
        case 4:
        case 5:
        case 6:
            season = "夏季";
            break;
        case 7:
        case 8:
        case 9:
            season = "秋季";
            break;
        case 10:
        case 11:
        case 12:
            season = "冬季";
            break;
        default:
            System.out.println("非法月份");
            System.exit(0);
    }
    System.out.println("该月在" + season);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/993352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有限状态机的概念

一、有限状态机的概念 有限状态机简称状态机&#xff0c;是表示有限个状态&#xff0c;以及在状态之间的转移和动作等行为的数学模型。状态机的要素有状态和状态转移两个。 在Unity中&#xff0c;动画状态机最重要的属性就是节点和连线&#xff0c;其中每个节点都是一个动画片…

zotero的使用教程

1. zotero安装 1.1 下载 官网下载地址:Zotero 1.2 安装 建议自定义安装路径,不要安装在C盘。如以下步骤: 2. 插件安装 一般安装以下四种插件,即茉莉花(Jasminum)、zotfile、zotero-scihub、zotero-pdf-translate。以安装茉莉花插件为例进行说明,如图1所示,其余插件安…

Linux mac Windows三系统 局域网文件共享方法

主要工具&#xff1a; Samba是一个开源的软件套件&#xff0c;允许Linux系统与Windows系统之间共享文件和打印机。 一、首先是Linux共享的设置 ①安装 sudo apt-get install samba ②创建共享文件夹 sudo mkdir /home/share ③配置用户 sudo smbpasswd -a kequan ④修改…

软件测评的必要性,第三方软件测试机构推荐

软件测评报告 1、什么是软件测评报告&#xff1f; 测试报告是指把测试的过程和结果写成文档&#xff0c;对发现的问题和缺陷进行分析&#xff0c;为纠正软件的存在的质量问题提供依据&#xff0c;同时为软件验收和交付打下基础。 2、软件测评报告的作用 一份详细的测试报告…

git打tag和版本控制规范

我们在开发中经常会遇到要打tag的情况&#xff0c;但这个tag应该如何打呢&#xff1f;我不知道大家平时是怎么打的&#xff0c;但我基本就是从1.0.0开始进行往上递增&#xff0c;至于如何递增&#xff0c;基本凭感觉。今天同事新打了一个tag进行发版&#xff0c;然后被架构点名…

计算机竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

AJAX学习总结+Axios异步框架+Filter拦截器学习+JSON介绍+Listener监听器介绍

壹、AJAX 一、AJAX介绍 AJAX&#xff08;Asynchronous JavaScript And XML&#xff09;&#xff1a;异步的JavaScript和XML AJAX作用&#xff1a; 1. 与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据。&#xff08;原先…

过于依赖性的危机:探索品牌代理商背后的实质含义

据IDC中国报道称&#xff1a;2023年中国低代码与零代码软件市场规模将达到34.7亿元人民币&#xff0c;同比增长32.4%。预计到2027年市场规模将达到106.3亿元人民币&#xff0c;未来5年市场年复合增长率&#xff08;CAGR&#xff09;为32.3%。 随低代码市场规模不断扩大&#xf…

【计算机网络】 确认应答机制与超时重传

文章目录 ACK机制——确认应答机制超时重传 ACK机制——确认应答机制 当我们客户端发送了一个数据&#xff0c;seq是1100&#xff0c;那么服务端在收到时就会回一个ack101的ACK包&#xff0c;代表101之前的包我都收到了&#xff0c;下面请你从101继续发送。然后客户端就会发送1…

无涯教程-JavaScript - IMARGUMENT函数

描述 IMARGUMENT函数返回参数$\theta $(theta),以弧度表示的Angular,如- $$x yi \left | x yi \right | e ^ {i \theta} \left | x yi \right |(\cos \theta \sin \theta)$$ 语法 IMARGUMENT (inumber)争论 Argument描述Required/OptionalInumberA complex number f…

【C++基础】7. 控制语句

文章目录 【 1. 循环 】1.1 循环类型1.2 循环控制语句break 语句continue 语句goto 语句 1.3 无限循环 【 2. 选择 】switch 语句&#xff1f;&#xff1a;语句 【 1. 循环 】 1.1 循环类型 循环类型描述while 循环当给定条件为真时&#xff0c;重复语句或语句组。它会在执行…

floodfill算法(洪水灌溉算法)

一)floodfill算法简介: 二)图像渲染 733. 图像渲染 - 力扣&#xff08;LeetCode&#xff09; class Solution {int[] dx {1, 0, 0, -1};int[] dy {0, 1, -1, 0};//上下搜索的时候要使用向量数组int row0;int col0;int target0;public void dfs(int[][] image,int i,int j,int…

认识模块化

1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组 合、分解和更换的单元。 1. 现实生活中的模块化 2.编程领域中的模块化 编程领域中的模块化&#xff0c;…

教你如何快速阅读葡萄酒标签

我们经常被问及葡萄酒标签上写了什么&#xff0c;总体而言这些信息可以分为四个关键部分&#xff0c;第一品牌或生产商&#xff1b;第二国家或地区&#xff1b;第三葡萄品种&#xff1b;第四年份。 第一品牌或生产商&#xff0c;在寻找葡萄酒的制造商时&#xff0c;著名的品牌名…

手机充值的功能测试框架 - 测试要点

手机充值有微信营销活动的、有 APP 页面应用等&#xff0c;以下是我以前公司的手机充值话费或流量应用的测试要点&#xff0c;分享给大家参考下。 一、手机号码输入框检查 1、手机号码框要控制成只能输入11位数字的文本框。 2、输入以非1开头的手机号&#xff0c;给出提示&a…

第 2 章 线性表 (设立尾指针的单循环链表(链式存储结构)实现)

1. 背景说明 循环链表(circular linked list)&#xff0c;是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点&#xff0c; 整个链表形成一个环。由此&#xff0c;从表中任一结点出发均可找到表中其他结点 。 2. 示例代码 1) status.h /* DataStruct…

Parsing error: The keyword ‘const‘ is reserved

Parsing error: The keyword ‘const’ is reserved 在文件.eslintrc.js中 因为eslint默认审查的es5&#xff0c;需要明确让他审查es6.&#xff0c;所以需要配置parserOptions 配置如下: module.exports {"plugins": ["prettier"],"rules": {…

【自学开发之旅】Flask-标准化返回-连接数据库-分表-orm-migrate-增删改查(三)

业务逻辑不能用http状态码判断&#xff0c;应该有自己的逻辑判断。想要前端需要判断&#xff08;好多if…else&#xff09;&#xff0c;所以需要标准化&#xff0c;标准化返回。 json标准化返回: 最外面&#xff1a;data,message,code三个字段。 data&#xff1a;返回的数据 co…

【Unity基础】2.网格材质贴图与资源打包

【Unity基础】2.网格材质贴图与资源打包 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;网格材质纹理 第一次接触3D物体的话&#xff0c;会觉得好神奇啊&#xff0c;这个物体究竟是由什么组…

教育志愿者的初心与担当

近日&#xff0c;有报道显示&#xff0c;在全球范围内&#xff0c;大约有6000万的儿童由于各种原因无法接受基础教育&#xff0c;其中非洲大陆的教育贫瘠现象尤为显著。然而&#xff0c;在这片土地上&#xff0c;有一位中国年轻志愿者Lily Zhu&#xff0c;以一种富有创新精神的…