关于java选择结构if和else详解

关于java选择结构if和else详解

在上篇文章中我们了解了java的基本流程控制之一用户交互,也讲述了scanner类的使用方式,本篇文章中我们来深入一下下一个java流程控制,ifelse,这个是非常关键的,也是我们以后的工作中最常见最常用的😀。

一、顺序结构

在介绍if和else之前,我们先说明一下java的顺序结构,这个也是非常重要的。

  • java的基本结构就是顺序结构。
  • 顺序就是从上至下去运行,除非是有特殊指明,否则就是按照从上至下 的顺序执行。
  • 顺序结构是最简单的算法结构。
  • 语句和语句之间,框与框之间,都遵循从上至下的方式执行。
public class Demo
{
    public static void main(String[] args)
    {
            System.out.println("第一个");
            System.out.println("第二个");
            System.out.println("第三个");
            System.out.println("第四个");
    }

}

我们用最简单的输出来看一下结果。

第一个
第二个
第三个
第四个

所以我们可以看到,代码运行是从上到下的顺序。

二、if(选择结构)

首先我们来介绍一下if的几种结构

  • if单选择结构
  • if双选择结构
  • if多选择结构
  • if嵌套式结构
  • swith(这个我们在以后的文章中详细说明😊)

1、单选择结构

  • 单选择结构:就是只有一个if判断,if后的小括号内,是布尔表达式,判断为真还是为假,只有true和false两种结果,如果判断内容为真,则执行大括号里面的代码,如果为假,则跳过大括号里面的代码,向下执行。

  • 单选择结构使用方法:

if(布尔表达式)
{
	//如果布尔值是true,在此处写需要执行的语句
}
  • 单选择结构流程图:

在这里插入图片描述

  • 单选择结构实例说明

我们正好可以结合上一篇文章中的Scanner知识,直接实战,用来加深对Scanner的印象。

关于java的用户交互Scanner

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入内容:");
        
        String str = scanner.next();//等待用户输入
        
        //equals 判断字符串是否相等
        if(str.equals(Hello))
        {
            System.out.println("输入的内容正确:"+str);
        }
        
        System.out.println("END");
        
        scanner.close();
    }

}
  • 在这里正好拓展一下,equals,是用于判断字符串是否相等,我们之前学习过这种方式(str==“Hello”),但是尽量不要用==去判断字符串是否相等,要去用equals,养成习惯以后就熟记于心了。

我们运行一下上面的代码,就可以看到以下输出结果😊(先看一下结果为真时候的输出)

请输入内容:
Hello
输入的内容正确:Hello
END

我们这里就可以看到,是按照顺序结构进行的,先执行了上面的判断,然后判断值是true,所以向下执行,再输出END。

我们再来看一下如果输入的内容和判断中的内容不一致,是什么结果(输入一个小写的hello)。

请输入内容:
hello
END

我们可以发现,输入的内容和判断中的内容不一致,大小写也是有区分的,结果为false,所以没有执行大括号中的代码,直接跳过向下执行了。

2、双选择结构

  • 双选择结构:通俗一点来说,比单选择结构多一层else,如果判断为真,执行if中的内容,如果为假,执行else中的内容。
  • 双选择结构使用方法:
if(布尔表达式)
{
	//如果布尔值是true,在此处写需要执行的语句
}
else  //注意,else后边没有括号
{
    //如果布尔值是false,在此处写需要执行的语句
}
  • 双选择结构流程图:

在这里插入图片描述

  • 双选择结构实例说明

我们还是用Scanner交互,让用户输入自己的考试成绩,来判断是否及格。

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入您的成绩:");
        
        int score = scanner.nextInt();
        
        if(score>60)
        {
            System.out.println("及格");
        }
        else
        {
            System.out.println("不及格");
        }
        
        scanner.close();
    }
}

我们运行一下代码,先输入及格的成绩,假设输入的成绩是80,来看一下运行的结果。

请输入您的成绩:
80
及格
    
进程结束.......

我们看可以看到,80>60,所以判断的结果为真,执行了输出及格的结果,如果我们输入的成绩是55,就可以看到,结果为假,执行的是不及格的结果😀。

请输入您的成绩:
55
不及格
    
进程结束.......

3、多选择结构

  • 多选择结构:我们在用if和else做判断的时候,可能会不只有一个判断,可能会有多个判断,所以要用多选择结构来判断。
  • 多选择结构使用方法:
if(布尔表达式1)
{
	//如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式2)
{
    //如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式3)
{
    //如果布尔值是true,在此处写需要执行的语句
}
else  //注意,else后边没有括号
{
    //如果布尔值是false,在此处写需要执行的语句
}

else if 就是多种判断,没有数量限制,可以写很多的判断条件😉,如果条件满足其中一个判断,就可以直接执行那个条件需要执行的代码。

  • 多选择结构流程图:

在这里插入图片描述

  • 多选择结构实例说明:

我们还是用Scanner来输入自己的成绩,但是这回需要判断成绩的等级,所以要用到多个判断,正好也可以用到我们之前文章中说到过的运算符。

关于java的运算符

import java.util.Scanner;

public class Demo
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("请输入您的成绩:");
        
        int score = scanner.nextInt();
        
        if (score>=60 && score<70)
        {
            System.out.println("及格");
        }
        else if (score>=70&&score<80)
        {
            System.out.println("中等");
        } else if (score>=80 && score<90)
        {
            System.out.println("优秀");
        } else if (score>=90 && score<100)
        {
            System.out.println("非常优秀");
        }
        else if (score==100)
        {
            System.out.println("恭喜满分!");
        } else if (score<60)
        {
            System.out.println("不及格");
        } else
        {
            System.out.println("无效的成绩");
        }
        
        scanner.close();
    }
}

我们执行一下,如果我们输入的成绩是80,因为80在score>=80 && score<90这个判断里,所以返回的结果是

请输入你的成绩:
80
优秀

进程结束......

这里我们要 详细介绍一下else if

  • 所有的if语句,都要至少有一个else,并且else要在所有的else if 之后。
  • if语句可以有若干个else if ,并且所有的else if 都要在else 之前。
  • 一旦其中一个满足了条件,判断的结果为true,其他的else if 和else 都会跳过执行。
  • 在以后的工作中,写判断的时候,一定要多思考,多去想有哪些情况,做到判断精准严谨!!🤔

4、嵌套式结构

  • 嵌套式结构:就是if套娃,if判断里面可以再写一个if,进行嵌套使用。
  • 嵌套式结构使用说明:
if(布尔表达式1)
{
	//如果布尔值是true,在此处写需要执行的语句
    if(布尔表达式2)
	{
	//如果布尔值是true,在此处写需要执行的语句
	}
}
  • 使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if…else。

如果我们需要找出一个数,这个数在1-100之间属于哪个范围。

  • 嵌套式结构实例说明:
import java.util.Scanner;

public class Demo
{
    public static void main(String[] args) 
    {

        Scanner scanner =new Scanner(System.in);

        System.out.println("请输入想要查找的数字:");

        int num=scanner.nextInt();

        if (num>=1 && num<=100) //首先要进行最外层的判断
        {
            if (num>=1 && num<=50)
            {
                System.out.println("此数字在1-50之间");
            }
            else if (num>=50 && num<=100)
            {
                System.out.println("此数字在50-100之间");
            }
        }
        else
        {
            System.out.println("输入的数字无效!");
        }

        scanner.close();
    }
}

假如我们输入的数字是88,执行一下代码,可以得到以下结果。

请输入想要查找的数字:
88
此数字在50-100之间

假如我们输入的数字是188,执行一下代码,可以得到以下结果。

请输入想要查找的数字:
188
输入的数字无效!

以上就是基础选择结构的四种方式,按照步骤去理解,结合现实生活中的一些判断逻辑,多去练习,加深印象😀。

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

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

相关文章

Java-File:遍历目录下的所有文件

一个常用file工具类&#xff0c;用来扫描给定目录下的所有文件&#xff0c;返回对应文件的全路径。 public static ArrayList<Object> scanFilesWithSubPackage(String path) {ArrayList<Object> scanFiles new ArrayList<Object>();LinkedList<File>…

40G多模光模块QSFP-40G-SR4优势及应用领域介绍

QSFP-40G-SR4光模块是一种常用的光纤传输解决方案。传输速率40G&#xff0c;SR代表短距离多模光纤&#xff08;Short Range Multimode Fiber&#xff09;&#xff0c;4表示有四个光纤通道。这种光模块采用MPO/MTP多模光纤连接器来实现高速传输&#xff0c;传输距离可以达到300米…

骨传导耳机的原理是什么?一文读懂骨传导耳机优缺点都有哪些!

一、骨传导耳机传声原理是什么 骨传导耳机以人体骨骼为传声介质&#xff0c;可以将声音转化为不同频率的震动&#xff0c;在不经过外耳道和鼓膜的情况下&#xff0c;通过震动使声音经过内耳道&#xff0c;直接传入大脑听觉神经&#xff0c;与传统耳机相比&#xff0c;可以节省许…

【堡垒机小问答】堡垒机最早起源于哪里?是国外吗?

随着大家网络安全意识的增加&#xff0c;对于堡垒机的了解也越来越多。最近有不少小伙伴在问&#xff0c;堡垒机最早起源于哪里&#xff1f;是国外吗&#xff1f;这里我们就来简单回答一下。 堡垒机最早起源于哪里&#xff1f;是国外吗&#xff1f; 【回答】&#xff1a;堡垒…

关于“Python”的核心知识点整理大全49

目录 16.2.10 加亮颜色主题 16.3 小结 第&#xff11;7 章 使用API 17.1 使用 Web API 17.1.1 Git 和 GitHub 17.1.2 使用 API 调用请求数据 17.1.3 安装 requests 17.1.4 处理 API 响应 python_repos.py 注意 17.1.5 处理响应字典 python_repos.py import json i…

We are a team - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 总共有 n 个人在机房&#xff0c;每个人有一个标号 (1<标号<n) &#xff0c;他们分成了多个团队&#xff0c;需要你根据收到的 m 条消息判定指定的两个人是否在一个团队中&#xff0c;具体的: 消息构成为 a b …

HMS SQL注入(CVE-2022-25491)

漏洞描述&#xff1a; 2022年3月15日&#xff0c;CVE收录了编号CVE-2022-25491漏洞&#xff0c;该漏洞为在HMS v1.0版本中存在SQL注入漏洞&#xff0c;该漏洞允许攻击者通过手动调试appointment.php文件中的editid软件参数进行SQL注入攻击。 复现过程&#xff1a; 1.访问ip&…

深入理解Golang:切片的底层机制解析

深入理解Golang&#xff1a;切片的底层机制解析 引言切片的基本概念切片的内部结构内存管理机制切片与数组的对比切片的高级用法性能优化建议案例研究 引言 在现代软件开发中&#xff0c;高效的数据处理和优化的内存管理是每位开发者都需面对的挑战。特别是在使用像Go语言&…

部署一款开源的网站监控工具—Uptime Kuma

项目介绍 项目地址&#xff1a;louislam/uptime-kuma: A fancy self-hosted monitoring tool (github.com) Uptime Kuma是一个开源的网络服务监控工具。它允许用户监视他们的网络服务&#xff0c;以确保其正常运行&#xff0c;并提供有关服务可用性和性能的实时信息。Uptime K…

R503S指纹识别模块的指令系统(一)

1.采集指纹图像 GetImage&#xff08;0x01&#xff09; 功能说明&#xff1a;探测手指&#xff0c;探测到后录入指纹图像存于 ImageBuffer&#xff0c;并返回录入成功确认码&#xff1b;若探测不到手指&#xff0c;直接返回无手指确认码(模块对于每一条指令都快速反应&#xf…

Go 语言如何读取 excel 测试数据,简单易学

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

微信小程序全部内嵌H5遇到的问题记录

微信小程序内嵌H5遇到的问题 问题1&#xff1a;js-sdk的配置h5里面微信公众平台 问题2&#xff1a;业务域名的配置小程序开发微信公众平台 问题3&#xff1a;H5与小程序的消息传递。方案1H5 方案2H5页面小程序开发 方案3H5页面小程序页面 使用H5来开发APP&#xff0c;之后将该H…

2023年度巨献,一图总结2023年最重要的AI相关的产品和技术~共48个产品或技术上榜

原文来自DataLearnerAI官方网站&#xff1a; 2023年度巨献&#xff0c;一图总结2023年最重要的AI相关的产品和技术~共48个产品或技术上榜 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051703825548892 2022年11月底&#xff0c;ChatGPT横空出世&…

vue-cli3/webpack打包时去掉console.log调试信息

文章目录 前言一、terser-webpack-plugin是什么&#xff1f;二、使用配置vue-cli项目 前言 开发环境下&#xff0c;console.log调试信息&#xff0c;有助于我们找到错误&#xff0c;但在生产环境&#xff0c;不需要console.log打印调试信息&#xff0c;所以打包时需要将consol…

字节跳动内部泄露的前端学习笔记在互联网上大火,在Github标星33K+,完整版赶紧下载

一、入门前端三剑客 1、HTML html 学起来还是挺简单的&#xff0c;无论你是否有编程基础&#xff0c;我觉得都可以快速入门&#xff0c;对于新手&#xff0c;我推荐找个入门的视频看一下&#xff0c;然后跟着视频打代码就可以了&#xff0c;入门教程随便在网上找个免费的视频就…

神经网络:模型部署

【一】模型压缩的必要性与可行性&#xff1f; 模型压缩是指对算法模型进行精简&#xff0c;进而得到一个轻量且性能相当的小模型&#xff0c;压缩后的模型具有更小的结构和更少的参数&#xff0c;可以有效降低计算和存储开销&#xff0c;便于部署在端侧设备中。 随着AI技术的…

浮点数表示法以及相关“小”知识点

浮点数的表示形式 小数点的位置是浮动的。 任意一个二进制数N可 以表示成&#xff1a;N&#xff1d;Sr^j 其中&#xff0c;S为尾数(可正可负)&#xff0c;r为基数(数值)&#xff0c;j是阶码(可正可负)。 1、对一个真值为23.25的十进制数&#xff0c;用浮点数格式表示其原码。 …

C语言——小细节和小知识7

一、逆序字符串 1、递归1 #include <stdio.h> #include <string.h>void ReverseArray(char *str) {char temp *str;//1int len (int)strlen(str);*str *(str len - 1);//2*(str len - 1) \0;//3if(strlen(str 1) > 2)//只要字符串还大于2&#xff0c;就…

uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)

文章目录 ⭐前言&#x1f496; 小程序系列文章 ⭐uni-file-picker 组件&#x1f496; 绑定事件&#x1f496; uploadFile api&#x1f496; 自定义上传 ⭐后端fastapi定义上传接口⭐uniapp开启本地请求代理devServer⭐前后端联调⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是ym…

分享72个NodeJs项目源码总有一个是你想要的

分享72个NodeJs项目源码总有一个是你想要的 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1_bzxbmBlN8ga4-Ci1I0-0w?pwd6666 提取码&#xff1a;6666 项目名称 A lottery webapp …