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;
成绩为(80,99]时,奖励一台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配对问题的案例:
其一、描述:
关于 if 与 else 配对问题的准则:就近原则;
其二、代码为:
// 下述代码中的执行过程:
// 由于 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,创作不易,且行且珍惜!