关于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
输入的数字无效!

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

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

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

相关文章

穷举vs暴搜vs深搜vs回溯vs剪枝

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;全排列 &#x1f449;&…

北斗卫星助力物流企业,打造智慧运输新时代

北斗卫星助力物流企业&#xff0c;打造智慧运输新时代 北斗卫星系统作为我国自主研发的卫星导航系统&#xff0c;近年来在智慧物流领域发挥了重要作用。通过北斗卫星系统的应用&#xff0c;物流企业可以实现智能化管理&#xff0c;提高运输效率&#xff0c;降低物流成本。越来…

零基础学Java第二天

复习回顾&#xff1a; 1.dos命令 dir 显示当前文件夹下面的所有的文件和文件夹 cd 切换目录的 mkdir 创建文件夹的 rd 删除文件夹的 del 删除文件 D: 切换盘符 cls 清屏 2.书写Java代码换行打印《静夜诗》这首古诗 class Demo1 { …

Python中的并发编程(7)异步编程

异步编程 Python3.4后新增了asyncio模块&#xff0c;支持异步编程。 异步是在一个线程中通过任务切换的方式让多个任务”同时“进展。asyncio不涉及线程/进程切换&#xff0c;减少了线程/进程创建、上下文切换的开销&#xff0c;更轻量级。 asyncio的核心是事件循环&#xff0…

智能分析网关V4+太阳能供电模式,搭建鱼塘养殖远程视频监控方案

一、行业背景 传统的鱼塘养殖模式由于养殖区域面积大、管理难度高&#xff0c;经常会出现偷钓者、盗窃鱼苗、非法入侵等监管难题&#xff0c;给养殖户带来了不小的经济损失。为了解决这些问题&#xff0c;搭建鱼塘远程监控系统成为了必要之举。通过远程监控系统&#xff0c;管…

rabbitmq使用总结

1、进入rabbitmq的sbin目录&#xff0c;进入CMD 2、输入./rabbitmq-plugins enable rabbitmq_management启用管理服务。 3、输入./rabbitmqctl start_app启动服务。 查看是否启动成功 1、浏览器访问http://localhost:15672/ 下载erlang 地址如下&#xff1a; http://erla…

【C++入门(一)】:详解C++语言的发展及其重要性

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; C入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f324;️什么是C&#x1f324;️C的发展史&#x1f324;️C的重要性☁️语言的广泛度☁️C的领域⭐…

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统&#xff08;选座&#xff09;管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

从方程到预测:数学在深度学习中的作用

图片来源 一、说明 深度学习通常被认为是人工智能的巅峰之作&#xff0c;它的成功很大程度上归功于数学&#xff0c;尤其是线性代数和微积分。本文将探讨深度学习与数学之间的深刻联系&#xff0c;阐明为什么数学概念是该领域的核心。 二、数学框架 从本质上讲&#xff0c;深度…

腾讯云轻量应用服务器性能差吗?

腾讯云轻量应用服务器性能如何&#xff1f;轻量服务器CPU采用什么型号&#xff1f;处理器计算性能如何&#xff1f;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;腾讯云服务器网txyfwq.com详解轻量CPU型号主频、处理器性能、内存、公网带宽、月流量、不同地域速度测试、…

腾讯云价格计算器,一键计算精准报价,好用!

腾讯云价格计算器&#xff1a;可以计算腾讯云服务器不同CVM实例规格、CPU内存、公网带宽和系统盘费用明细表&#xff0c;可以一键计算出精准报价明细表&#xff0c;腾讯云服务器网txyfwq.com分享大家腾讯云服务器价格计算器入口链接、使用方法及限制说明&#xff1a; 腾讯云服…

【持续更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 &#xff08;1&#xff09;项目可行性分析 &#xff08;2&#xff09;需求描述 &#xff08;3&#xff09;界面原型 &#xff08;4&#xff09;数据库设计 &#xff08;5&#xff09;后端工程 接下来我们使用uniappspringboot实现一个简单的前后端分离的小项目----个…

5天一更新的卫星影像数据来自哪里?

这里我们就来分享一下&#xff0c;5天一更新的卫星影像源来自哪里。 哥白尼计划 在开始讲卫星影像数据源时&#xff0c;我们先来了解一下什么是哥白尼计划。 哥白尼计划&#xff08;Copernicus Programme&#xff09;&#xff0c;又称全球环境与安全监测计划&#xff08;Glo…

HCIA-Datacom题库(自己整理分类的)——ARP协议【完】

一、单选 1.ARP 属于哪一层协议&#xff1f; 数据链路层 网络层 物理层 传输层 2.ARP请求是____发送的 点播 广播 组播 单播 关于ARP报文的说法错误的是? ARP请求报文是广播发送的 ARP报文不能被转发到其他广播域 ARP应答报文是单播方发送的 任何链路层协议都需…

【并发编程篇】解决线程安全问题 — CopyOnWriteArraySet

文章目录 &#x1f354;情景引入&#x1f33a;报错了&#xff0c;解决方法⭐方法一⭐方法二 &#x1f354;情景引入 我们看下面这段代码 运行后报错了 我们看看报错原因 报错原因是并发修改异常 &#x1f33a;报错了&#xff0c;解决方法 ⭐方法一 我们使用其他工具类&am…

【领域驱动设计】模式--通用语言(Ubiquitous language)

一.前言 有道无术术可求&#xff0c;有术无道止于术。方法论的形成都是为了让我们能够更高效&#xff0c;系统的解决问题&#xff0c;而不至于遇到问题不知所措。 二.通用语言的必要性 相信大家在实际的软件开发流程过程中&#xff0c;经常会遇到参照 Prd原型 编码出的系统与实…

骑砍战团MOD开发(27)-module_tableau_materials.py材质

一.配置材质资源 OpenBrf寻找对应材质资源. tableau配置材质资源 ("round_shield_1", 0, "sample_shield_round_1", 512, 256, 0, 0, 0, 0,[(store_script_param, ":banner_mesh", 1),(set_fixed_point_multiplier, 100),(init_position, pos1),…

NFC物联网智能购物车设计方案

智能购物车是综合利用计算机网络、射频识别技术、数据库技术、单片机于一体的设备具有先进性、便于管理性、经济性、普适性。基于NFC (Near Field Communication&#xff0c;近场通信)技术的智能购物车&#xff0c;能够大幅缩短结账排队时间&#xff0c;实现“无感支付”。NFC是…

【黑产攻防道04】利用pow工作量证明降低黑产的破解效率

上一期我们提到&#xff0c;黑产有三种常见的破解方式&#xff1a; 1.通过识别出验证码图片答案实现批量破解验证&#xff0c;即图片答案识别&#xff1b; 2.在了解通讯流程之后直接携带相关参数发请求&#xff0c;即协议破解&#xff1b; 3.使用各种客户端模拟器来模拟真人…