09、java程序流程控制之一:顺序结构、分支语句(if-else结构)(经典案例以及Scanner类的使用)

java程序流程控制之一:

  • Ⅰ、顺序结构:
    • 1、顺序结构简介:
  • Ⅱ、分支语句:if-else
    • 1、if-else分支结构:
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 2、如何从键盘获取不同类型的变量:Scanner类
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 4、if-else分支结构的案例1:根据成绩要奖励
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 5、if-else分支结构的案例2:三个整数比大小
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 6、if-else分支结构之if与else配对问题的案例:
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
      • 其四、修改后的代码为:
      • 其五、修改后的截图为:
    • 7、if-else分支结构的案例3:算小狗年龄
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 8、if-else分支结构的案例4:随机产生一个两位数
      • 其一、描述:
      • 其二、代码为:
      • 其三、截图为:
    • 9、if-else分支结构的案例5:嫁与不嫁
      • 其一、描述:
      • 其二、方式一的代码为:
      • 其三、方式一的截图为:
      • 其四、方式二的代码为:
      • 其五、方式二的截图为:
  • Ⅲ、小结:

Ⅰ、顺序结构:

1、顺序结构简介:

顺序结构是指:Java中定义成员变量时采用合法的前向引用;

正确形式为:public class Test{int num1 = 12;int nums2 = num1 + 2;
}错误形式为:
public class Test{int nums2 = num1 + 2;int num1 = 12;
}

Ⅱ、分支语句:if-else

1、if-else分支结构:

其一、描述:

分支结构中的if-else(条件判断结构)的三种结构:第一种:
if(条件表达式){执行表达式
}第二种:二选一
if(条件表达式){执行表达式1
}else{执行表达式2
}第三种:n选一
if(条件表达式){执行表达式1
}else if(条件表达式){执行表达式2
}else if(条件表达式){执行表达式3
}
...
else{执行表达式n
}

其二、代码为:

class IfTest {public static void main(String[] args) {//举例1int heartBeats = 79;if(heartBeats < 60 || heartBeats > 100){System.out.println("需要做进一步检查");}System.out.println("检查结束");//检查结束;//举例2int age = 23;if(age < 18){System.out.println("你还可以看动画片");}else{System.out.println("你可以看成人电影了");//你可以看成人电影了;}//举例3if(age < 0){System.out.println("您输入的数据非法");}else if(age < 18){System.out.println("青少年时期");}else if(age < 35){System.out.println("青壮年时期");//青壮年时期;}else if(age < 60){System.out.println("中年时期");}else if(age < 120){System.out.println("老年时期");}else{System.out.println("你是要成仙啊~~");}}
}

其三、截图为:

在这里插入图片描述

2、如何从键盘获取不同类型的变量:Scanner类

其一、描述:

如何从键盘获取不同类型的变量:需要使用Scanner类具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量注意:
需要根据相应的方法,来输入指定类型的值;
如果输入的数据类型与要求的类型不匹配时(若输入的数据类型能被提升也可以),会报异常:InputMisMatchException 导致程序终止;

其二、代码为:

//1.导包:import java.util.Scanner;
import java.util.Scanner;class ScannerTest{public static void main(String[] args){//2.Scanner的实例化Scanner scan = new Scanner(System.in);//3.调用Scanner类的相关方法:System.out.println("请输入你的姓名:");// scan.next() 表示输入 String 类型;String name = scan.next();System.out.println(name);System.out.println("请输入你的芳龄:");// scan.nextInt() 表示输入 int 类型;int age = scan.nextInt();System.out.println(age);System.out.println("请输入你的体重:");// scan.nextDouble() 表示输入 double 类型;double weight = scan.nextDouble();System.out.println(weight);System.out.println("你是否相中我了呢?(true/false)");// scan.nextBoolean() 表示输入 boolean 类型;boolean isLove = scan.nextBoolean();System.out.println(isLove);//对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串;System.out.println("请输入你的性别:(男/女)");String gender = scan.next();//"男"char genderChar = gender.charAt(0);//获取索引为0位置上的字符(即:以char型接收)System.out.println(genderChar);}}

其三、截图为:

// 调用 Scanner 类不同的方法,需要输入的值也不同;

在这里插入图片描述

4、if-else分支结构的案例1:根据成绩要奖励

其一、描述:

岳小鹏参加Java考试,他和父亲岳不群达成承诺:如果:
成绩为100分时,奖励一辆BMW;
成绩为(8099]时,奖励一台iphone xs max;
当成绩为[60,80]时,奖励一个 iPad;
其它时,什么奖励也没有。
请从键盘输入岳小鹏的期末成绩,并加以判断说明:
1. else 结构是可选的(即:根据需要可有可无);
2. 针对于条件表达式:> 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓;> 如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面;> 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了;

其二、代码为:

import java.util.Scanner;class IfTest {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入岳小鹏期末成绩:(0-100)");int score = scan.nextInt();if(score == 100){System.out.println("奖励一辆BMW");//be my wife!  BMW <---> MSN// 80 < score <= 99// 上述写法在 java 中是错的,因为代码从左往右执行,此时 80 < score 的执行// 结果为 true,而 true <= 99 是没法比较大小的,因此就运算不了;// 注意:习惯将变量写在前面,因此写法为 score > 80 &&  score <= 99;}else if(score > 80 &&  score <= 99){System.out.println("奖励一台iphone xs max");}else if(score >= 60 && score <= 80){System.out.println("奖励一个 iPad");}else{System.out.println("什么奖励也没有");}}
}

其三、截图为:

// 输入为 100 情况下的截图:

在这里插入图片描述

// 输入为 (80,99] 情况下的截图:

在这里插入图片描述

// 输入为 [60,80] 情况下的截图:

在这里插入图片描述

// 输入为 [0,60) 情况下的截图:

在这里插入图片描述

5、if-else分支结构的案例2:三个整数比大小

其一、描述:

编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。说明:
1. if-else结构是可以相互嵌套的;
2. 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议大家省略;

其二、代码为:

import java.util.Scanner;class IfTest2 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入第一个整数:");int num1 = scanner.nextInt();System.out.println("请输入第二个整数:");int num2 = scanner.nextInt();System.out.println("请输入第三个整数:");int num3 = scanner.nextInt();if(num1 >= num2){if(num3 >= num1)System.out.println(num2 + "," + num1 + "," + num3);else if(num3 <= num2)System.out.println(num3 + "," + num2 + "," + num1);elseSystem.out.println(num2 + "," + num3 + "," + num1);}else{if(num3 >= num2)System.out.println(num1 + "," + num2 + "," + num3);else if(num3 <= num1)System.out.println(num3 + "," + num1 + "," + num2);elseSystem.out.println(num1 + "," + num3 + "," + num2);}}
}

其三、截图为:

在这里插入图片描述

6、if-else分支结构之if与else配对问题的案例:

其一、描述:


关于 ifelse 配对问题的准则:就近原则;

其二、代码为:

// 下述代码中的执行过程:
// 由于 x1 > 2 的判断条件成立且 y1 > 2 的判断条件不成立,因此执行 System.out.println("atguigu"); 语句;
// 若 x1 > 2 的判断条件成立且 y1 > 2 的判断条件也成立,就要执行 System.out.println(x1 + y1); 语句和 System.out.println("atguigu"); 语句;
// 若 x1 > 2 的判断条件不成立,就要执行 System.out.println("x1 is " + x1); 语句;class IfExer {public static void main(String[] args) {int x1 = 4;int y1 = 1;if (x1 > 2) {if (y1 > 2) System.out.println(x1 + y1);System.out.println("atguigu");// 此时的输出结果为:atguigu// 因为其不是 if else 的流程语句, 但编译也不报错;} elseSystem.out.println("x1 is " + x1);}
}

其三、截图为:

在这里插入图片描述

其四、修改后的代码为:

// 此时的问题是:else 语句是匹配 if(x>2) 语句还是 if(y>2) 语句?
// 答:在 if 与 else 无明显匹配关系的时候,就采取就近原则(即:此时的 else 语句匹配的是 if(y>2) 语句);
// 因此在 if(y>2) 的判断条件不成立后,就执行 System.out.println("x is " + x); 语句,因此此时的输出结果为:4;class IfExer {public static void main(String[] args) {int x = 4;int y = 1;if (x > 2) if (y > 2) System.out.println(x + y);//System.out.println("atguigu");else //就近原则(即:此时就涉及 if 与 else 配对的问题)System.out.println("x is " + x);//4}
}

其五、修改后的截图为:

在这里插入图片描述

7、if-else分支结构的案例3:算小狗年龄

其一、描述:

题目:
我家的狗6岁了,6岁的狗相当于人类多大呢?其实,狗的前两年每
一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么6岁的狗
相当于人类多少年龄呢?

其二、代码为:

// 在狗狗的年龄为 6 岁时,输出的结果如下;
class IfExer {public static void main(String[] args) {int dogAge = 6;if(dogAge >= 0 && dogAge <= 2){System.out.println("相当于人的年龄:" + dogAge * 10.5);}else if( dogAge > 2){System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4));}else{System.out.println("狗狗还没出生呢!");}}
}

其三、截图为:

在这里插入图片描述

8、if-else分支结构的案例4:随机产生一个两位数

其一、描述:

用程序随机地产生一个两位数的整数;

其二、代码为:

class IfExer {public static void main(String[] args) {//如何获取一个随机数:10 - 99int value = (int)(Math.random() * 90 + 10);// [0.0,1.0) --> [0.0,90.0) --->[10.0, 100.0) -->[10,99]System.out.println(value);//公式:[a,b]  :  (int)(Math.random() * (b - a + 1) )+ a//注意:此时的 a 在外面或里面,并不影响结果;  (int)(Math.random() * (b - a + 1) )+ a  或 (int)(Math.random() * (b - a + 1)+ a )//(int)Math.random() * (b - a + 1) + a,此时的返回结果始终为a,因为先计算的 (int)Math.random() 值为0;}
}

其三、截图为:

// 随机产生两位数的三次截图情况:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9、if-else分支结构的案例5:嫁与不嫁

其一、描述:

大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上;富:财富1千万以上;帅:是。
如果这三个条件同时满足,则:“我一定要嫁给他!!!”
如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
如果三个条件都不满足,则:“不嫁!”

其二、方式一的代码为:

import java.util.Scanner;class IfExer1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入你的身高:(cm)");int height = scan.nextInt();System.out.println("请输入你的财富:(千万)");double wealth = scan.nextDouble();//方式一:System.out.println("请输入你是否帅:(true/false)");boolean isHandsome = scan.nextBoolean();if(height >= 180 && wealth >= 1 && isHandsome){System.out.println("我一定要嫁给他!!!");}else if(height >= 180 || wealth >= 1 || isHandsome){System.out.println("嫁吧,比上不足,比下有余。");}else{System.out.println("不嫁!");}}
}

其三、方式一的截图为:

// 三个条件都满足的情况:

在这里插入图片描述

// 三个条件满足其中一、二条的情况:

在这里插入图片描述

// 三个条件都不满足的情况:

在这里插入图片描述

其四、方式二的代码为:

import java.util.Scanner;class IfExer1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入你的身高:(cm)");int height = scan.nextInt();System.out.println("请输入你的财富:(千万)");double wealth = scan.nextDouble();//方式二:System.out.println("请输入你是否帅:(是/否)");String isHandsome = scan.next();//isHandsome.equals("是")中的 equals() 方法,是来判断 isHandsome 变量的字符串是否与"是"一样; if(height >= 180 && wealth >= 1 && isHandsome.equals("是")){System.out.println("我一定要嫁给他!!!");}else if(height >= 180 || wealth >= 1 || isHandsome.equals("是")){System.out.println("嫁吧,比上不足,比下有余。");}else{System.out.println("不嫁!");}}
}

其五、方式二的截图为:

// 三个条件都满足的情况:

在这里插入图片描述

// 三个条件满足其中一、二条的情况:

在这里插入图片描述

// 三个条件都不满足的情况:

在这里插入图片描述

Ⅲ、小结:

其一、哪里有不对或不合适的地方,还请大佬们多多指点和交流!
其二、若有转发或引用本文章内容,请注明本博客地址(直接点击下面 url 跳转) https://blog.csdn.net/weixin_43405300,创作不易,且行且珍惜!

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

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

相关文章

Mac Dock栏多屏幕漂移固定的方式

记录一下 我目前的版本是 14.5 多个屏幕&#xff0c;Dock栏切换的方式&#xff1a; 把鼠标移动到屏幕的中间的下方区域&#xff0c;触到边边之后&#xff0c;继续往下移&#xff0c;就能把Dock栏固定到当前屏幕了。

你所不知道的关于AI的27个冷知识——AI的伦理问题

AI的伦理问题 亲爱的朋友们,今天我们要探讨一个充满哲理与挑战的话题,那就是人工智能(AI)的伦理问题。想象一下,AI就像是一位超级英雄,拥有无尽的力量和智慧,但如果不加以规范和引导,它也可能成为一位不受控制的“反派”。让我们一起走进这个复杂而又有趣的世界,看看…

pytorch 是如何调用 cusolver API 的调用

0&#xff0c;环境 ubuntu 22.04 pytorch 2.3.1 x86 RTX 3080 cuda 12.2 1, 示例代码 以potrs为例&#xff1b; hello_cholesk.py """ hello_cholesky.py step1, Cholesky decompose; step2, inverse A; step3, Cholesky again; python3 hello_cholesky.py -…

【Hot100】LeetCode—155. 最小栈

目录 题目1- 思路2- 实现⭐155. 最小栈——题解思路 3- ACM 实现 题目 原题连接&#xff1a;155. 最小栈 1- 思路 思路 最小栈 ——> 借助两个栈来实现 2- 实现 ⭐155. 最小栈——题解思路 class MinStack {Stack<Integer> data;Stack<Integer> min;public …

sqlite3 — DB-API 2.0 interface for SQLite databases

sqlite3 — DB-API 2.0 interface for SQLite databases — Python 3.12.4 documentation sqlite3 — DB-API 2.0 interface for SQLite databasessqlite3 — SQLite数据库的DB-API 2.0接口 Source code: Lib/sqlite3/ 源代码位置&#xff1a;Lib/sqlite3/ SQLite is a C…

JVM系列 | 对象的创建与存储

JVM系列 | 对象的生命周期1 对象的创建与存储 文章目录 前言对象的创建过程内存空间的分配方式方式1 | 指针碰撞方式2 | 空闲列表 线程安全问题 | 避免空间冲突的方式方式1 | 同步处理&#xff08;加锁)方式2 | 本地线程分配缓存 对象的内存布局Part1 | 对象头Mark Word类型指针…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 游乐园门票 (200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 最新华为O…

SqlServer SQL语句或存储过程运行慢 使用 WITH RECOMP ILE 或 OPTION (RECOMPILE)(重新编译)

如果您的存储过程包含参数可以重新申明变量把参数接收下&#xff0c;可能解决你过程执行慢的原因。如果未能解决&#xff0c;请参考以下文章内容&#xff1a; WITH RECOMPILE 子句可以在以下地方使用&#xff1a; 一种是当你创建一个过程时&#xff0c;例如&#xff1a; CREA…

Linux离线安装Mysql5.7

Linux之Mysql安装配置 第一种&#xff1a;Linux离线安装Mysql&#xff08;提前手动下载好tar.gz包&#xff09; 第二种&#xff1a;通过yum安装配置Mysql&#xff08;服务器有网络&#xff09; 之前在阿里云上采用yum安装过一次&#xff08;请看这里&#xff09;&#xff0c;…

基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现

注&#xff1a;每个学校每个老师对论文的格式要求不一样&#xff0c;故本论文只供参考&#xff0c;本论文页数达到60页以上&#xff0c;字数在6000及以上。 基于SpringBootVueJS微信小程序技术的图书森林共享小程序设计与实现 目录 基于SpringBootVueJS微信小程序技术的图书森…

27.数码管的驱动,使用74HC595移位寄存器芯片

PS&#xff1a;升腾A7pro系列FPGA没有数码管外设&#xff0c;因此以AC620FPGA为例展开实验。 &#xff08;1&#xff09;共阳极数码管和共阴极数码管示意图&#xff1a; AC620中的数码管属于共阳极数码管&#xff0c;段选端口(dp,g,f,e,d,c,b,a)低电平即可点亮led。人眼的视觉…

连锁直营店小程序赋能多店如何管理

如商超便利店卖货线下场景&#xff0c;也有不少品牌以同城多店和多地开店经营为主&#xff0c;获取店铺周围客户和散流&#xff0c;如今线上重要性凸显&#xff0c;品牌电商发展是经营的重要方式之一&#xff0c;也是完善同城和外地客户随时便捷消费的方式之一。 多个门店管理…

抖音视频图文根据ID获得评论信息网站源码

抖音视频图文根据ID获得评论信息单页源码&#xff0c;id是视频的id&#xff0c;可以自定义第几条评论开始&#xff0c;不填默认为0&#xff0c;评论数量最大数量50&#xff0c;默认是20。 接口返回参数&#xff1a; "comments": 评论信息集合 { "uid": 评…

ObjectiveC 内存管理

内存的五大区域 栈&#xff1a;局部变量 &#xff08;当局部变量的作用域被执行完毕之后&#xff0c;这个局部变量就会被系统立即回收&#xff09;&#xff1b;堆&#xff1a;OC对象和使用C函数申请的空间&#xff1b;BSS段&#xff1a;未初始化的全局变量、静态变量&#xff…

STO SS1 SS2 SLS 安全释义

变频器集成安全功能已经越来越普遍,本篇介绍一下常用的一些安全功能。 安全停止变频器的功能:安全扭矩断关断(STO)、安全停机 1 (SS1)、安全停机 2 (SS2)、安全操作停止(SOS) 用于安全监控驱动运动的功能:安全限速 (SLS)、安全速度监控 (SSM) 1、安全扭矩关断 (STO) S…

uniapp踩坑小伎俩记录

1. 页面路径和文件名大小写问题 // 假设你有一个页面路径是 /pages/Home/index this.$router.push(/pages/home/index); // 小写的 home 会导致找不到页面2. 小程序平台差异 // 微信小程序中使用 uni.getSystemInfo({success: (res) > {console.log(res);} }); // 支付宝小…

原创音乐小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;歌曲类型管理&#xff0c;歌曲信息管理&#xff0c;热门歌手管理&#xff0c;音乐资讯管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;歌曲信息&a…

数学建模·Topsis优劣解距离法

Topsis优劣解 一种新的评价方法&#xff0c;特点就是利用原有数据&#xff0c;客观性强。 相较于模糊评价和层次评价 更加客观&#xff0c;充分利用原有数据&#xff0c;精确反映方案差距 基本原理 离最优解最近&#xff0c;离最劣解越远 具体步骤 正向化 代码与原理与熵权…

链接追踪系列-08.mac m1安装logstash-番外

下载地址&#xff1a;https://elasticsearch.cn/download/ 配置es相关&#xff1a; #安装plugin&#xff1a; jelexbogon bin % ./logstash-plugin install logstash-codec-json_lines启动&#xff1a;指定配置文件运行 jelexbogon bin % nohup ./logstash -f ../config…

SSM学习7:SpringMVC简介、SpringMVC入门案例、SpringMVC bean加载控制

SpringMVC简介 Spring MVC 是 Spring 框架的一部分&#xff0c;它是一个用于构建 Web 应用程序的模型-视图-控制器&#xff08;Model-View-Controller&#xff0c;MVC&#xff09;框架。Spring MVC 提供了一种清晰的方式来分离业务逻辑、用户界面和控制流程&#xff0c;使得应…