java中的分支结构-if...else...类型
1. if基本语法
在Java代码中,如果我们要根据某个条件来决定是否执行一段代码,就可以考虑使用if语句。if语句的基本语法是:
if(条件表达式){
//满足条件时要执行的语句
}
在上面的语法中,会根据if(条件表达式)里的计算结果(true或者false),由JVM决定是否执行{}里的代码块。如果为true,就执行,否则就不执行。
2. if的单分支语句
首先我们通过一个简单的需求,来学习if的单分支语句。所谓的单分支语句,就是说只有一种判断情况,条件为真就执行,否则就不执行。比如这个需求:“如果你年满18岁,就可以攒劲的节目”。
public class Demo01 {
public static void main(String[] args) {
// if语句
//案例1:如果年龄大于等于18岁,就可以看攒劲的节目了
System.out.println("请输入你的年龄");
//获取Scanner对象
Scanner sc=new Scanner(System.in);
//获取年龄
int age = sc.nextInt();
//如果语句块{}里面只有一条执行语句,{}可以省略,但建议保留。
if(age >= 18){
System.out.println("本节目只对成年人开放,未成年人请在父母陪同下观看,节目正在缓冲......");
}
//案例2:如果身高大于180,且体重小于180,就可以当模特
System.out.println("请输入你的身高");
int height = sc.nextInt();
System.out.println("请输入你的体重");
int weight = sc.nextInt();
//条件表达式中,可以结合之前学习过的逻辑运算符
//采用短路与&&,提高效率
if(height > 180 && weight < 180){
System.out.println("恭喜你,可以当模特了");
}
}
}
另外如果{}语句块里面只有一条执行语句,{}可以省略,但建议保留。因为如果我们采用缩进的格式,很容易把后面的语句都看成是if语句的执行块,所以不推荐忽略花括号的写法。
单分支语句应对的情况是很简单的,在实际开发中可能会很复杂,这就需要使用多分支语句来进行处理。
3. if的多分支语句
3.1 if...else结构
if...else...结构会根据条件表达式的结果进行判断,当表达式的结果为true,则执行语句块A;否则执行else后面的语句块B。基本语法结构如下:
if(逻辑条件){
//满足逻辑条件执行的代码
}else{
//不满足逻辑条件执行的代码
}
案例如下:
public class Demo01 {
public static void main(String[] args) {
// if多分支语句
Scanner sc=new Scanner(System.in);
//案例:如果用户名为admin、密码为123456,就跳转到首页,否则跳转到登录页面
System.out.println("请输入用户名");
String username = sc.next();
System.out.println("请输入密码");
String password = sc.next();
//equals()比较方法
if("admin".equals(username) && "123456".equals(password)){
System.out.println("跳转首页");
}else{
System.out.println("跳转登录页面");
}
}
}
我们要注意,在java中,"=="比较的是两个对象的内存地址是否相同,String类中的equals()方法比较的是内容是否相同。如果是基本数据类型,我们可以使用==进行比较;而对于String字符串,一般是使用equals()方法进行比较。
另外我们在使用equals()方法进行比较时,要采用类似"admin".equals(username)的写法,而不要采用username.equals("admin")的写法。因为username对象的值有可能为null,这样就可能会产生NullPointerException异常。
3.2 if多分支
if多分支就是可以利用多个if ... else if ...else...进行串联。多分支可以根据多个条件表达式的结果进行判断:
●如果条件表达式1的结果为true,则执行语句块1;否则去判断条件表达式2;
●如果条件表达式2的结果为true,则执行语句块2,否则去判断条件表达式3;
● ....
●如果所有的条件表达式结果都为false,则执行语句块N+1;
●else是可选的,根据需要可以省略。
if多分支的语法结构如下:
if(逻辑条件1){
//满足逻辑条件1执行的代码
}else if(逻辑条件2){
//隐藏条件(不满足条件1) 满足逻辑条件2执行的代码
}else if(逻辑条件3){
//隐藏条件(不满足条件1、2) 满足逻辑条件3执行的代码
}else{
//不满足以上所有逻辑条件执行的代码
}
需求案例:请你根据手上的资金选择购买的手机品牌。如果你手里的钱大于10000,就买个苹果;如果大于7000, 就买个华为;如果大于5000,就买个小米;如果大于3000,就买个诺基亚;否则,乖乖地去打公共电话。
public class Demo01 {
public static void main(String[] args) {
// if多分支语句
Scanner sc=new Scanner(System.in);
//请你根据手上的资金选择购买的手机品牌。如果你手里的钱大于10000,就买个苹果;
//如果大于7000, 就买个华为;如果大于5000,就买个小米;如果大于3000,就买个诺基亚;
//否则,乖乖地去打公共电话。
System.out.println("请输入余额");
int money = sc.nextInt();
if(money > 10000){
System.out.println("苹果手机");
}else if(money > 7000){ //money <= 10000
System.out.println("华为手机");
}else if(money > 5000){
System.out.println("小米手机");
}else if(money > 3000){
System.out.println("诺基亚手机");
}else{
System.out.println("打公共电话");
}
}
}
大家要注意,我们在串联使用多个if时,要特别注意判断顺序和边界条件的判断。
4. if嵌套
if嵌套的语法结构如下:
if(逻辑条件1){
if(逻辑条件2){
//满足逻辑条件1且满足条件2执行的代码
}else{
//满足逻辑条件1但不满足条件2执行的代码
}
}else{
//不满足逻辑条件1执行的代码
}
需求案例:学校举行跑步比赛,如果成绩在15秒以内,可以进入决赛,男的进入男子组决赛,女的进入女子组决赛。
public class Demo01 {
public static void main(String[] args) {
// if多条件嵌套
Scanner sc=new Scanner(System.in);
//学校举行跑步比赛,如果成绩在15秒以内,可以进入决赛,男的进入男子组决赛,女的进入女子组决赛
System.out.println("请输入你的比赛成绩");
double score = sc.nextDouble();
if(score < 15){
System.out.println("请输入你的性别");
String sex = sc.next();
if("男".equals(sex)){
System.out.println("恭喜进入男子组");
}else{
System.out.println("恭喜进入女子组");
}
}else{
System.out.println("很遗憾你被淘汰了!!!");
}
}
}
5.if语句很费效率吗?
●在Java中,if语句本身并不是特别费效率。if语句的效率通常取决于它所包含的代码和逻辑。
●当if语句的判断条件非常简单且快速时,它对程序性能的影响通常可以忽略不计。然而,如果if语句的条件比较复杂,例如需要进行多次计算或调用方法,则会影响程序的性能。
●此外,如果if语句的条件经常变化,那么编译器很难对它进行优化,这可能会导致性能下降。
●综上所述,如果if语句的条件简单,代码执行效率高,那么它并不会明显地影响程序性能。但如果if语句的条件较为复杂或频繁变化,则需要仔细考虑如何优化程序以提高性能。
6.java中的else
在Java中,else if是用于在if语句后添加额外的条件分支的一种语法结构。它允许您检查多个条件,并在每个条件为真时执行相应的代码块。
代码示范:
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 80) {
System.out.println("良好");
} else if (score >= 70) {
System.out.println("中等");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
●在这个例子中,我们检查了一个score变量的值,并根据它的值输出不同的文本。如果score大于或等于90,输出"优秀",否则检查它是否大于或等于80,如果是,输出"良好",以此类推。如果所有条件都不满足,最后执行else语句中的代码块。
●需要注意的是,在if语句中,只有第一个条件分支被执行。如果第一个条件分支不成立,则继续检查下一个else if语句中的条件分支,直到找到一个满足条件的分支或者执行else语句。
●总之,else if语句是Java中用于添加多个条件分支的一种语法结构,它允许您检查多个条件,并在每个条件为真时执行相应的代码块。
看到现在你知道if和else这对好基友该如何使用了吗?大家看完一定要多多练习,这样才能总结知识点。