Java--if分支语句

流程控制结构

程序流程有三种基本的控制结构,即顺序结构、选择结构和循环结构


if分支语句

第一种形式:【简单if语句】         第二种形式:【双分支语句】        第三种形式【多分支if语句】

  if(布尔表达式){                          if(布尔表达式){                                  if(表达式1){

                 语句 ;                                   语句1;                                              语句1;

                  }                                          }else{                                                 }else if(表达式2){

                                                                语句2;                                               语句2

                                                                     }                                                     ......

                                                                                                                     }else if(表达式m){

                                                                                                                              语句m;

                                                                                                                       } else{

                                                                                                                            语句n;

                                                                                                                               }                          


                                                       

第一种简单if语句                                          

以下是一个简单的if语句的流程图示例:

如上图所示,if语句的执行步骤如下:

1. 首先,程序会判断括号内的条件是否为真。如果为真,程序会执行if语句的代码块;如果为假,则跳过if语句的代码块,继续执行后面的代码。
2. 如果条件为真,程序会执行if语句中花括号内的代码块。
3. 执行if语句代码块后,程序会接着执行后面的语句。如果没有后续语句,则代码执行结束。

tip:(1)表达式必须使用圆括号括起来,括号里边可以使用逻辑运算符,如&&;

     (2)表达式:关系表达式或逻辑表达式

     (3)“语句”可以使单语句也可以是复合语句

举个简单if语句例子:

输入一学生成绩,如大于等于60分,则输出“考试通过”

import java.util.Scanner;
 public class IfDemo{
   public static void main(String[] args){

      Scanner scan =new Scanner(System.in);
      System.out.println("请输入考试成绩:");
      double score =scan.nextDouble();
    if(score >=60){
        System.out.println("考试通过");
}
}
   }

第二种双分支语句 

以下是双分支if语句的流程图:

其中,判断条件为一个布尔表达式,可以是任何可以返回布尔值(true或false)的表达式。

如果条件成立,程序将执行语句1并结束;否则,程序将执行语句2并结束。

tip:(1)关键字 if 后面必须有“表达式”,而关键字 else 后面不能有“表达式”。

      (2) if 分支和 else 分支都是只能自动结合一条语句,当有多条语句时,必须用花括号括起来            构成复合语句(格式如下),因为复合语句在语法上相当于一条语句。

举个双分支if语句例子:

输入一学生成绩,如大于等于60分,则输出"考试通过",否则输出"考试不通过

import java.util.Scanner;
public class IfDemo{
      public static void maon(String[] args){
               Scanner scan =new Scanner(System.in);
            System.out.println("请输入考试成绩:");
         double score =scan.nextDouble();
      if(score>=60){
      System.out.println("考试通过");
            }else{

     System.out.println("考试不通过")

}



}


}

第三种多分支语句 

以下是多分支if语句的流程图:

多分支if语句指的是有多个分支的if语句,即在满足不同条件时执行不同的代码块。在多分支if语句中,可以使用if-else if-else结构或者switch-case结构来实现。

if-else if-else结构的示例代码如下:

if (condition1) {
    // code block 1
} else if (condition2) {
    // code block 2
} else if (condition3) {
    // code block 3
} else {
    // code block 4 (default case)
}
 

在这个示例中,如果condition1成立,则执行code block 1;如果condition1不成立,检查condition2是否成立,如果成立则执行code block 2;如果condition2也不成立,检查condition3是否成立,如果成立则执行code block 3;如果condition3也不成立,则执行code block 4。

switch-case结构的示例代码如下:

switch (expression) {
    case value1:
        // code block 1
        break;
    case value2:
        // code block 2
        break;
    case value3:
        // code block 3
        break;
    default:
        // code block 4 (default case)
        break;
}
 

举个多分支语句例子

将百分制成绩转换为等级制成绩。转换标准如下:90分以上为“优”,80分以上“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。

import java.util.Scanner;
 
public class ScoreDemo{
   public static void main(String[] args){
     Scanner scan new Scanner(System.in);
         System.out.print("请输入学生成绩:");
      int score =scan.nextInt();//变量score用于存储成绩
        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("不及格")
}
}
}

常见错误分析

1.将百分制成绩转换为等级制成绩。转换标准如下:90分以上为“优秀”。80分以上为“良”,70分以上为“中”,60分以上为"及格”,60分以下为“不及格”。

2.将百分制成绩转换为等级制成绩。转换标准如下:大于等于90分为“优秀”,小于90分大于80分为“良”,小于80分大于等于70分为“中”,小于70分大于等于60分为‘及格“,60分以下为”不及格“。

3.在编写程序的时候,很多同学经常用数学的思路来编写代码,在逻辑语句当中可能会编写成if(90>score>=80)这是惯用的数学思维,我们要把思路转换成编程语言,应该是这样(score<90&&score>=80)

4.我们在编写程序的时候,要整理好我们的清晰的逻辑。

import java.util.Scanner;
 
public class ScoreDemo{
   public static void main(String[] args){
     Scanner scan new Scanner(System.in);
         System.out.print("请输入学生成绩:");
      int score =scan.nextInt();//变量score用于存储成绩
        if(score>=60){
            System.out.println("及格");
             }else if (score>90){
                  System.out.println("优秀");
             } else if (score>=70){
                  System.out.println("良");
             }else if (score>=80){
                   System.out.println("好");
             }else{
                   System.out.println("不及格")
}
}
}

从这里看代码,条件编写是没有问题的,但是在逻辑上出现了问题,输入大于等于60的数,无论输多少,都是输出及格,这个时候就出现一种情况,其他条件没有运行出来,这串代码只有两种结果“及格”与"不及格"。出现逻辑错误,就达不到,我们分数分级的预想。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值