什么是 if-else 语句
Java 在分支结构中有两种分支语句:一种是 if-else,另一种是 switch-case。这两种语句在我们的代码执行流程中主要起一个什么作用呢 ?那就是根据我们实际开发当中的不同需求来选择性的执行我们的代码。今天我们这篇文章主要讲 if-else分支语句的使用,
if-else 有哪些特点
结构一:
if(条件表达式){
执行表达式
}
结构二:二选一
if(条件表达式){
执行表达式1
}else{
执行表达式2
}
结构三:n选一
if(条件表达式){
执行表达式1
}else if(条件表达式){
执行表达式2
}else if(条件表达式){
执行表达式3
}
...
else{
执行表达式n
}
注意事项
- else 结构是一个可选的结构
- if-else结构是可以相互嵌套的
- 如果if-else结构中的执行语句只有一行时,对应的一对{}可以省略的。但是,不建议省略
针对于条件表达式的注意点
- 如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
- 如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
- 如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行了。
如何使用
案例一:
/**
小马同学参加Java考试,他和父亲老马达成承诺:
如果:
成绩为100分时,奖励一台 MacBook Pro 16英寸;
成绩为(80,99]时,奖励一台 iphone12 Pro;
当成绩为[60,80]时,奖励一台 iPad Pro;
其它时,什么奖励也没有。
请从键盘输入小马的期末成绩,并加以判断
*/
public class IfTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入小明的期末成绩:");
int score = scanner.nextInt();
if(score == 100){
System.out.println("奖励一台 MacBook Pro 16英寸");
}else if(score >= 80 && score <= 99){
System.out.println("奖励一台 iphone12 Pro");
}else if(score >= 60 && score <= 80){
System.out.println("奖励一台 iPad Pro");
}else{
System.out.println("小马同学要努力哇!!!");
}
}
}
案例二:
public class IfTest02 {
/**
* 编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
* 对它们进行排序(使用 if-else if-else),并且从小到大输出。
*/
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);
}else{
System.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);
}else{
System.out.println(num1 + ","+ num3 +"," + num2);
}
}
}
}
案例三:
public class IfTest03 {
/**
* 我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每一年相当于人类的10.5岁,之后每增加一年就增加四岁。
* 那么5岁的狗相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
*
* 编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请你输入你家狗狗的年龄:");
int dogAge = scanner.nextInt();
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("小狗狗还没有出生哦~");
}
}
}
案例四:
/**
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上;富:财富1千万以上;颜值:必须帅。
如果这三个条件同时满足,则:“简直就是我的罗曼欧迪克,爱了,爱了!”
如果三个条件有为真的情况,则:“还可以啦,嫁吧”
如果三个条件都不满足,则:“老娘天下最美,想都别想!”
*/
public class IfTest04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的身高:(cm)");
int height = scanner.nextInt();
System.out.println("请输入你的银行卡余额:(千万)");
double wealth = scanner.nextDouble();
System.out.println("请输入你的颜值:(帅/不帅)");
String isHandsome = scanner.next();
if(height >= 180 && wealth >=1 && "帅".equals(isHandsome)){
System.out.println("简直就是我的罗曼欧迪克,爱了,爱了!");
}else if(height >= 180 || wealth >= 1 || "帅".equals(isHandsome)){
System.out.println("还可以啦,嫁吧");
}else{
System.out.println("老娘天下最美,想都别想");
}
}
}