您的位置:首页 > 房产 > 建筑 > 【Java 分支语句详解 之 If 】

【Java 分支语句详解 之 If 】

2024/12/23 8:21:18 来源:https://blog.csdn.net/Yhame/article/details/142070971  浏览:    关键词:【Java 分支语句详解 之 If 】

Java 分支语句详解 之If - else

在这里插入图片描述

在编程过程中,我们经常需要根据不同的条件执行不同的代码块,这种流程控制被称为 分支语句。在 Java 中,常见的分支控制结构有 if-elseswitch。本文将详细介绍 if 分支结构的使用方法以及相关的代码示例。


一、单分支控制语句 (if)

基本语法:

if (条件表达式) {// 执行代码块,当条件表达式为 true 时执行
}

流程图
在这里插入图片描述

说明:
当条件表达式为 true 时,执行代码块;如果为 false,则不执行代码块。如果代码块中只有一条语句,可以省略大括号 {}


示例:

import java.util.Scanner;public class If01 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入你的年龄:");int age = in.nextInt();if (age >= 18) {System.out.println("小伙子好好学习,不然以后出去要搬砖哈~");}}
}

在这个例子中,程序会根据用户输入的年龄来判断是否输出提示语。只有当年龄大于等于 18 岁时,才会输出 “小伙子好好学习”。


二、双分支控制语句 (if-else)

基本语法:

if (条件表达式) {// 执行代码块1,当条件为 true 时执行
} else {// 执行代码块2,当条件为 false 时执行
}

在这里插入图片描述

说明:
if 语句用于条件判断,如果条件表达式为 true,则执行 if 块中的代码;否则,执行 else 块中的代码。

示例:

import java.util.Scanner;public class If02 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入年龄:");int age = in.nextInt();if (age >= 18) {System.out.println("你已经满十八岁,不努力就去搬砖。");} else {System.out.println("你还小,好好学习~");}System.out.println("程序继续运行。。。");}
}

这个例子展示了双分支控制。程序根据年龄输出不同的提示语,并且无论哪个分支执行,程序最后都会输出 “程序继续运行”。


三、多分支控制语句 (if-else if-else)

基本语法:

if (条件表达式1) {// 执行代码块1
} else if (条件表达式2) {// 执行代码块2
} else {// 执行代码块n
}

在这里插入图片描述

说明:
多分支控制语句用于处理多个条件,每个条件依次判断,直到找到一个满足条件的分支并执行其代码块。如果所有条件都不满足,执行 else 中的代码。

示例:

import java.util.Scanner;public class If03 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入您的信用积分:");int credit = in.nextInt();if (credit >= 0 && credit <= 100) {if (credit == 100) {System.out.println("你的信用等级:信用极好!");} else if (credit > 80) {System.out.println("你的信用等级:信用优秀!");} else if (credit >= 60) {System.out.println("你的信用等级:信用一般!");} else {System.out.println("你的信用等级:信用不及格!");}} else {System.out.println("输入有误,请重新输入!!!");}}
}

这个程序根据用户输入的信用积分来判断信用等级。每个信用等级有相应的分数区间,程序会根据不同的分数输出相应的信用等级。


四、嵌套分支控制语句

基本语法:

if (条件表达式1) {if (条件表达式2) {// 执行代码块1} else {// 执行代码块2}
} else {// 执行代码块n
}

在这里插入图片描述

说明:
在一个 ifelse 分支中再嵌套 if-else 语句。注意不要嵌套太多层,避免代码过于复杂。

示例:

import java.util.Scanner;public class NestedIf {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入您的所得分数:");double score = in.nextDouble();if (score > 8.0) {System.out.println("请输入您的性别(男/女):");char gender = in.next().charAt(0);if (gender == '男') {System.out.println("成功晋级,男子组!");} else if (gender == '女') {System.out.println("成功晋级,女子组!");} else {System.out.println("输入的性别无效!");}} else {System.out.println("很遗憾,您未能晋级。");}}
}

这个例子展示了嵌套分支的使用,根据用户输入的分数和性别,决定用户是否晋级以及晋级的组别。
注意点 .charAt(0): 这是一个 String 类的方法,用于获取字符串中的第一个字符。charAt(0) 会返回字符串的第一个字符,因此它在这里被用来从 next() 方法返回的字符串中提取第一个字符。


五、示例:出票系统

需求:
根据淡旺季月份和年龄,打印票价:

  • 旺季(4-10 月):成人(18-60 岁)票价为 60 元,儿童半价,老人三分之一价格。
  • 淡季:成人票价为 40 元,儿童和老人票价为 20 元。

示例代码:

import java.util.Scanner;public class TicketSystem {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.println("请输入购票月份:");int month = in.nextInt();System.out.println("请输入您的年龄:");int age = in.nextInt();// 检查月份是否合理if (month < 1 || month > 12) {System.out.println("无效的月份,请输入1到12之间的月份。");return;}// 旺季 4-10 月if (month >= 4 && month <= 10) {if (age >= 18 && age <= 60) {System.out.println("你的票价为 60 元");} else if (age < 18) {System.out.println("你的票价为 30 元(儿童票)");} else {System.out.println("你的票价为 20 元(老人票)");}} else { // 淡季if (age >= 18 && age <= 60) {System.out.println("你的票价为 40 元");} else {System.out.println("你的票价为 20 元");}}}
}

这个例子展示了如何根据月份和年龄判断票价,程序会根据用户输入的月份和年龄来决定输出不同的票价。


六、常见错误

等号 == 与赋值符号 = 的区别:

在条件判断中,常见的错误是将比较符号 == 误写为赋值符号 =。例如:

boolean b = true;if (b = false) {System.out.println("a");
} else if (b) {System.out.println("b");
} else if (!b) {System.out.println("c");
} else {System.out.println("d");
}

在这段代码中,if(b = false) 是将 b 赋值为 false,因此输出会是 “c”。这个错误很常见,应当特别注意。


七、总结

分支语句是控制程序执行流程的重要工具。通过合理使用 if-else 和嵌套分支,可以让程序根据不同的条件执行不同的操作,极大地增强了程序的灵活性。注意在分支语句中合理组织条件,避免过多的嵌套,提高代码的可读性和维护性。
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com