流程的控制

条件选择语句

我们一般将条件选择语句分为三类:

  • 单条件
  • 双条件
  • 多条件

本篇文章将分开诉说着三类。

单条件

单条件的语法很简单:

if (条件) {
        // 代码
    }

条件这里我们需要注意下,可以向里写入两种:

  • 布尔值
  • 布尔表达式

当然,格式也是至关重要的,养成良好的代码习惯是每位IT工作人员应该的,在这里我介绍四种不同的方式:

  • if (条件1 && 条件2) 【建议使用】
  • if (条件1 || 条件2) 【建议使用】
  • if (条件1 & 条件2) 【不推荐】
  • if (条件1 | 条件2) 【不推荐】

给大家一个例子:

if (3 > 2) {};

现在我们需要实现输入分数,若是及格,控制台打印及格, 若是不及格,程序结束:

import java.util.Scanner;

public class Demo05If {
    public static void main(String[] args) {
        // 1. 单条件
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的分数:");
        int i = scanner.nextInt();
        if(i >= 60) {
            System.out.println("及格!!!");
        }
    }
}
双条件

语法:

if (条件) {
	  // 满足条件的时候运行
	} else {
	  // 不满足条件的时候运行
	}

我们使用双条件就可以将单条件中的场景完善:

import java.util.Scanner;

public class Demo05If {
    public static void main(String[] args) {
        // 1. 单条件
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的分数:");
        int i = scanner.nextInt();
        if(i >= 60) {
            System.out.println("及格!!!");
        } else {
            System.out.println("继续努力!!!");
        }
    }
}
多条件

一般我们在很多场景下需要使用多条件类型的语句,例如在期末分析学生成绩时,若学生成绩在0-59是不及格,60-79是中等,80-89是良好,90往上是优等。
语法是:

	if(条件) {
	} else if (条件) {
	} else if (条件) {
	} else {	
	}

那么我们实现这个场景:

import java.util.Scanner;

public class Demo05If {
    public static void main(String[] args) {
        // 1. 单条件
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的分数:");
        int i = scanner.nextInt();
        if(i < 60) {
            System.out.println("不及格");
        } else if(i < 80){
            System.out.println("中等");
        } else if (i < 90) {
            System.out.println("良好");
        } else {
            System.out.println("优秀");
        }
    }
}
多条件嵌套

先画一个流程图:
image.png
我们介绍下多条件嵌套的语法:

 if () {
		if() {
		
		} else {
		
		}
    } else {
		if() {
		
		} else {
		
		}
    }

简单来说,就是为了满足需求,我们不得不在一个多条件的IF语句中加入多个IF语句来完成项目需求的实现,所以一般建议在使用多流程嵌套前先画一个流程图理清思路(别写到后面自己都不知道自己在写什么)。

import java.util.Random;

public class Demo06 {
    public static void main(String[] args) {
        // sex  age
        Random random = new Random();
        // 0(女) 1(男)
        int sex = random.nextInt(2);
        int age = random.nextInt(10) + 15;
        //三元运算符,若sex等于0,就打印"女";不等于0,就打印"男"
        System.out.println("性别:" + (sex == 0 ? "女" : "男") + " 年龄:" + age);
        if(sex == 0) {
            // 女的
            if(age < 20) {
                System.out.println("no");
            } else {
                System.out.println("yes");
            }
        } else {
            // 男的
            if(age < 22) {
                System.out.println("no");
            } else {
                System.out.println("yes");
            }
        }
    }
}

Switch选择语句

语法:

switch(变量) {
   case:
   		代码
   		break;
   case:
   		代码
   		break;
   case:
   		代码
   		break;
   default:
   		代码
   		break;
}

现在有一个场景:
学习计划的制定。周一到周五(每天的内容已经确定)。

  • 周一:java环境安装
  • 周二:变量
  • 周三:数据类型
  • 周四:条件判断
  • 周五:循环
  • 其他时间: 休息

写一个程序,用户输入星期几(1~7)。然后程序输出你要做的事情。
如果我们要用条件选择语句也可实现:

import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入星期(1 ~7)");
        int week = scanner.nextInt();

        if(week == 1) {
            System.out.println("环境安装");
        } else if (week == 2) {
            System.out.println("变量");
        } else if (week == 3) {
            System.out.println("数据类型");
        } else if (week == 4) {
            System.out.println("条件判断");
        } else if (week == 5) {
            System.out.println("循环结构");
        } else  {
            System.out.println("休息");
        }
    }
}

但这里有些问题:

  • 条件不是一个范围,是一个固定的值
  • 判断的流程比较长

那么在这里就可以用到switch语句:

import java.util.Scanner;

public class Demo07 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入星期(1 ~7)");
        int week = scanner.nextInt();

        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;
            default:
                System.out.println("休息");
                break;

        }
    }
}

我们需要注意break,一定要写上。
我们再看一个场景:输入月份然后获得对应的季节:

import java.util.Scanner;

public class Demo08 {
    public static void main(String[] args) {
        // 输入一个月份,得到对应的季节
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();

        switch (i) {
            case 3:
            case 4:
            case 5:
                System.out.println("春");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("冬");
                break;
            default:
                System.out.println("未知月份");
                break;
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法刷题 | 动态规划08】6.9(单词拆分、打家劫舍、打家劫舍||)

文章目录 21.单词拆分21.1题目21.2解法&#xff1a;动规21.2.1动规思路21.2.2代码实现 22.打家劫舍22.1题目22.2解法&#xff1a;动规22.2.1动规思路22.2.2代码实现 23.打家劫舍||23.1题目23.2解法&#xff1a;动规23.2.1动规思路23.2.2代码实现 21.单词拆分 21.1题目 给你一…

Unity动画录制工具在运行时录制和保存模型骨骼运动的方法录制动画给其他角色模型使用支持JSON、FBX等格式

如果您正在寻找一种在运行时录制和保存模型骨骼运动的方法&#xff0c;那么此插件是满足您需求的完美解决方案。 实时录制角色运动 将录制到的角色动作转为动画文件 将录制好的动作给新的角色模型使用&#xff0c;完美复制 支持导出FBX格式 操作简单&#xff0c;有按钮界面…

Nacos的配置中心

1.前言 除了注册中心和负载均衡之外, Nacos还是⼀个配置中心, 具备配置管理的功能. Namespace 的常用场景之一是不同环境的配置区分隔离&#xff0c; 例如开发测试环境和⽣产环境的配置隔离。 1.1 为什么需要配置中心&#xff1f; 当前项目的配置都在代码中&#xff0c;会存…

网络基础-IP协议

文章目录 前言一、IP报文二、IP报文分片重组IP分片IP分片示例MTUping 命令可以验证MTU大小Windows系统&#xff1a;Linux系统: 前言 基础不牢&#xff0c;地动山摇&#xff0c;本节我们详细介绍IP协议的内容。 一、IP报文 第一行&#xff1a; 4位版本号指定IP协议的版本&#…

原来你长这个样子啊,Java字节码文件

字节码文件 字节码文件是一种二进制文件&#xff0c;扩展名为.class 通过 javac 将源码编译得到&#xff0c;是一种中间形式的代码&#xff0c;这种中间形式的代码让Java有了“一次编译&#xff0c;多次运行”的跨平台特点。 字节码文件的组成 由5大组成部分&#xff1a;基础…

9.3 Go 接口的多态性

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Python第二语言(六、Python异常)

目录 1. 捕获异常&#xff08;try: except: else: finally:&#xff09; 1.1 概念 1.2 基础语法&#xff08;try&#xff1a; except&#xff1a;&#xff09; 1.3 捕获异常&#xff08;异常也有类型&#xff09; 1.4 捕获多个异常&#xff08;try&#xff1a;except(Name…

UI学习的案例——照片墙

照片墙案例 在实现照片墙案例之前先讲一下userInteractionEnable这个属性。 首先这个属性属于UIView&#xff0c;这个属性是bool类型&#xff0c;如果为YES的话&#xff0c;这个UIView会接受有关touch和keyboard的相关操作&#xff0c;然后UIView就可以通过相应的一些方法来处…

C语言详解(联合和枚举)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习笔记&#xff0c;在这里撰写…

多粒度特征融合(细粒度图像分类)

多粒度特征融合&#xff08;细粒度图像分类&#xff09; 摘要Abstract1. 多粒度特征融合1.1 文献摘要1.2 研究背景1.3 创新点1.4 模型方法1.4.1 Swin-Transformer1.4.2 多粒度特征融合模块1.4.3 自注意力1.4.4 通道注意力1.4.5 图卷积网络1.4.6 基于Vision-Transformer的两阶段…

SpringBoot集成缓存功能

1. 缓存规范 Java Caching定义了五个核心接口&#xff0c;分别是&#xff1a;CachingProvider、CacheManager、Cache、Entry和Expiry。 CachingProvider&#xff1a;定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheM…

玉米粒计数检测数据集VOC+YOLO格式107张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;107 标注数量(xml文件个数)&#xff1a;107 标注数量(txt文件个数)&#xff1a;107 标注类别…

预备知识----技术架构演进之路

单机架构 简介&#xff1a;应用服务和数据库服务共用一台服务器。 出现原因&#xff1a;出现在互联网早期&#xff0c;访问量较小&#xff0c;单机足以满足需求。 架构工作原理&#xff1a;通过应用&#xff08;划分了多个模块&#xff09;和数据库在单个服务器上写作完成业务…

进阶篇01——存储引擎

MySQL体系结构 存储引擎 引擎有多种类型&#xff0c;MySQL支持多种存储引擎&#xff0c;默认的存储引擎为innodb。不同的存储引擎有不同的特点&#xff0c;适用不同的场景。 innodb存储引擎 简介 innodb的逻辑存储结构 MYISAM存储引擎 memory存储引擎 三种引擎特点对比&…

《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆

在0&#xff0c;0点处绘制10个圆。 其实这个题先要记住python不会0&#xff0c;0为原点进行绘画。 它是按半径来画&#xff0c;所以我们要先把turtle这个小画笔送到它应该去的起点。&#xff08;我经常有这样的错觉&#xff0c;每次都是这样想办法把自己拉回来&#xff09; 我…

【目标跟踪网络训练 Market-1501 数据集】DeepSort 训练自己的跟踪网络模型

前言 Deepsort之所以可以大量避免IDSwitch&#xff0c;是因为Deepsort算法中特征提取网络可以将目标检测框中的特征提取出来并保存&#xff0c;在目标被遮挡后又从新出现后&#xff0c;利用前后的特征对比可以将遮挡的后又出现的目标和遮挡之前的追踪的目标重新找到&#xff0…

STM32 proteus + STM32Cubemx仿真教程(第二课按键教程)

文章目录 前言一、STM32按键的原理二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写4.1函数介绍4.2使用按键点亮LED灯 总结 前言 本篇文章开始带大家学习如何使用proteus和STM32Cubemx来完成STM32的学习&#xff0c;第二节课我们先来学习按键的用法。 proteus使…

景区ar互动大屏游戏化体验提升营销力度

从20世纪60年代的初步构想&#xff0c;到如今全球范围内无数企业的竞相投入&#xff0c;AR增强现实技术已成为引领科技潮流的重要力量。而在这一浪潮中&#xff0c;中国的AR公司正以其独特的魅力和创新力&#xff0c;崭露头角。 中国的AR市场正在迎来前所未有的发展机遇。如今&…

qmt量化交易策略小白学习笔记第16期【qmt编程之获取北向南向资金(沪港通,深港通和港股通)】

qmt编程之获取北向南向资金 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 北向南向资金&#xff08;沪港通&#xff0c;深港通和港股通&#xff09; #北向南向资金交易日历 获取交易日列表…

UltraEditUEStudio软件最新版下载及详细安装教程

UEStudio简介&#xff1a; UEStudio建立在上文本编辑器UltraEdit的功能基础上&#xff0c;并为团队和开发人员提供了其他功能&#xff0c;例如深度Git集成。您可以直接在UEStudio中克隆&#xff0c;签出&#xff0c;更新&#xff0c;提交&#xff0c;推入/拉入等操作&#xff…