Java的编程之旅6——程序控制结构if语句

程序控制结构分为顺序结构、分支结构、循环结构

而if语句则属于分支结构,分支结构有单分支、双分支和多分支三种形式。

  1. 单分支结构程序流程:

当判断条件为“真”值时,执行语句块1;当判断条件为“假”值时,越过语句块往下执行其他语句或结束,通常用来指定某一段语句是否执行。


if(条件){
    /**语句块**/
}

例1:输入两个数字,输出其中较大数字


public class Compare {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入两个数字:");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        if(num1>num2){
            System.out.println("较大的数为"+num1);
        }
        if(num2>num1){
            System.out.println("较大的数为"+num2);
        }
    }
}

比如输入5(num1)和6(num2),程序执行到第7行时进行if判断语句,如果5(num1)>6(num2),则输出较大的数为5(num1).但实际上5(num1)>6(num2)条件的值为假不执行其语句,跳过此段程序向下执行到第10行.6(num2)>5(num1),条件成立,则输出较大的数为6.

  1. 双分支结构程序流程:

当判断条件为“真”值时,执行语句块1;当判断条件为“假”值时,执行语句块2,通常用来在两段语句中选择一段执行。


if(条件){
    /**语句块1**/
}
else{
    /**语句块2**/
}

例2:输入两个数字,输出其中较大数字


public class Compare {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入两个数字:");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        if(num1>num2){
            System.out.println("较大的数为"+num1);
        }
        else{
            System.out.println("较大的数为"+num2);
        }
    }
}

如果不考虑两个数字相等的情况,可将例1中的两个单分支if结构合并为一个双分支结构,程序执行过程和例1等同。若考虑两个数字相等的情况则需采用多分支结构。

  1. 多分支结构程序流程:

也就是扩展的双分支结构,一般设有n个条件,n或者n+1个语句块,当判断条件从上往下判断到某个为“真”值时,执行对应的语句块,然后退出多分支结构继续往下执行其他内容。注意:多分支结构在一次执行的时候只能选择一个分支,即使其他判断条件为“真”值,也不会继续判断执行。


if(条件1){
    /**语句块1**/
}
else if(条件2){
    /**语句块2**/
}
else if(条件2){
    /**语句块3**/
}
...
else{
    /**语句块n**/
}

例3:输入两个数字,输出其中较大数字


public class Compare {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入两个数字:");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        if(num1>num2){
            System.out.println("较大的数为"+num1);
        }
        else if(num2>num1){
            System.out.println("较大的数为"+num2);
        }else{
            System.out.println("两个数相等");
        }
    }
}

若输入5(num1)和6(num2),如果5(num1)>6(num2),则输出较大的数为5(num1).但实际上5(num1)>6(num2)条件的值为假不执行其语句,跳过此段程序向下执行到第10行.6(num2)>5(num1),条件成立,则输出较大的数为6.

若输入10(num1)和10(num2),第7行和第10行两个判断条件都不符合,均不执行。只执行else后的语句,输出为两个数相等。

综合练习:判断成绩等级


public class jugdeGrade  {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入分数:");
        int score = sc.nextInt();
        if(score>=90&&score<=100){
            System.out.println("成绩等级为A");
        }else if(score>=80&&score<90){
            System.out.println("成绩等级为B");
        }else if(score>=70&&score<80){
            System.out.println("成绩等级为C");
        }else if(score>=60&&score<70){
            System.out.println("成绩等级为D");
        }else{
            System.out.println("不及格");
        }
    }
}

分支结构的嵌套:

即一个if分支结构中包含另一个(或多个)if分支

例:判断成绩等级(升级版)


public class Compare{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入分数:");
        int score = sc.nextInt();
        if (score < 0 || score > 100) {
            System.out.println("输入的分数非法~");
            System.exit(0);//退出java虚拟机,即结束此段if语句,跳到下一段程序
        } else {
            if (score >= 90 && score <= 100) {
                System.out.println("成绩等级为A");
            } else if (score >= 80 && score < 90) {
                System.out.println("成绩等级为B");
            } else if (score >= 70 && score < 80) {
                System.out.println("成绩等级为C");
            } else if (score >= 60 && score < 70) {
                System.out.println("成绩等级为D");
            } else {
                System.out.println("不及格");
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惊爆点大男主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值