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栏固定到当前屏幕了。

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 …

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": 评…

原创音乐小程序的设计

管理员账户功能包括&#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…

leetcode 513. 找树左下角的值

给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7提示: 二叉树的节点个数的范围是 [1,104]-231 < Node.val &…

张雪峰高考志愿填报

描述 张雪峰&#xff0c;一个富有才华的老师&#xff01; 对于大家的学习有不可多得的帮助。 内容 目前主要的内容以自愿填报为主&#xff0c;对于学习自愿填报有比较大的帮助&#xff01; 但是网络上面错综复杂&#xff0c;很多老旧的版本影响学习&#xff01; 而这里我整…

vue3 快速入门 (一) : 环境配置与搭建

1. 本文环境 Vue版本 : 3.4.29Node.js版本 : v20.15.0系统 : Windows11 64位IDE : VsCode 2. 安装Node.Js 首先&#xff0c;我们需要安装Node.Js。Node.js提供了运行 JavaScript 代码的环境。并且Node.js 带来了 npm&#xff0c;它是JavaScript世界的包管理工具。开发vue时&…

使用Copilot 高效开发繁忙的一天

在现代软件开发的世界里&#xff0c;使用AI工具如GitHub Copilot可以显著提高开发效率。 早晨&#xff1a;规划与启动 7:00 AM - 起床与准备 开发者早早起床&#xff0c;享用健康的早餐&#xff0c;并浏览新闻和技术博客&#xff0c;了解最新的科技动态。快速整理思路&#x…

MICS2024|少样本学习、多模态技术以及大语言模型在医学图像处理领域的研究进展|24-07-14

小罗碎碎念 本期推文主题 今天的会议很多主题都集中在大模型、多模态这两个方面&#xff0c;很明显&#xff0c;这两个方向都是目前的研究热点。 所以&#xff0c;我这一期推文会先简单的分析一下秦文健&#xff08;中科院&#xff09;和史淼晶&#xff08;同济大学&#xff09…

【STM32开发笔记】搭建VSCode+PyOCD的STM32开发环境

【STM32开发笔记】搭建VSCodePyOCD的STM32开发环境 一、安装软件1.1 安装STM32CubeMX1.2 安装VSCode1.3 安装Arm GNU Toolchain1.4 安装Make for Windows1.5 安装Python1.6 安装PyOCD 二、安装插件2.1 VSCode插件2.2 PyOCD支持包 三、创建项目3.1 创建STM32CubeMX项目3.2 查阅原…