java基础——流程控制(选择结构)if语句

来源:互联网 发布:全国省市区sql脚本 编辑:程序博客网 时间:2024/05/31 19:15

流程结构控制语句分类:
作用:用来控制程序执行流程。

选择结构:


也称为分支结构,他有特定的语法规则,
要执行具体的逻辑运算进行判断,结果有两个,
从而进行选择,按照不同选择执行不同的代码。
java中提供了两中选择结构语句:
1-if
2-switch(后补充)

if语句:
三种格式:
1-:if(关系表达式){
         语句体
    }

首先要看关系表达式的结果是true还是false
如果是true就执行语句体
如果是false就不执行。
package com.lcn.day03;public class IfDemo2 {/** * @param args */public static void main(String[] args) {int x = 100;if(x == 100){System.out.println("x等于100");//选择结构}if(x == 200){System.out.println("x等于200");//选择结构}System.out.println("hello world");//顺序结构}}
结果:
x等于100
hello world

if语句注意事项:
1-关系表达式无论简单还是复杂结果都是boolean类型。
2-if语句如果控制的语句体只有一条语句,大括号可以省略,
如果是多条语句就不能省略。(建议不省略写)
3-一般来讲有左大括号就没有分号,有分号就没有左大括号。

格式2-if(关系表达式){
      语句体1
   }else{
      语句体2
    }

注意:else后面没有表达式。
执行流程:
  首先比较表达式的结果,是true还是false
  如果是true就执行语句体1
  如果是false就执行语句体2
package com.lcn.day03;public class IfelseDemo1 {/** * @param args */public static void main(String[] args) {        int x = 100;if(x == 100){System.out.println("x等于100");//选择结构}else{System.out.println("x不等于100");}System.out.println("hello world");//顺序结构}}


案例1:
package com.lcn.day03;import java.util.Scanner;public class IfelseDemo2 {/** * 键盘录入获取两个数中较大的值 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个数:");int x = sc.nextInt();System.out.println("请输入第二个数:");int y = sc.nextInt();int max;if(x>y){max = x;}else{max = y;}System.out.println("最大值是:"+max);}}


案例2:
package com.lcn.day03;import java.util.Scanner;public class IfelseDemo4 {/** *判断一个数据是奇数还是偶数 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);        System.out.println("请输入一个数:");        int a = sc.nextInt();        if(a%2==0){        System.out.println("是偶数");        }else{        System.out.println("是奇数");         }}}

思考:
if语句和三元运算符的区别。
下面是用三元表达式做我们之前做过的练习。
package com.lcn.day03;import java.util.Scanner;public class IfelseDemo5 {/** * 三元表达式来比较两个数的较大值 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入第一个数:");int x = sc.nextInt();System.out.println("请输入第二个数:");int y = sc.nextInt();int max = (x>y?x:y);System.out.println("最大值是:"+max);}}

但是上面做的奇数偶数就不能用三元替代。
结论:
三元可以用if修改,但if未必可用三元修改(例:当if语句控制的是一个输出语句时)。
因为三元控制的是结果。



格式3-
  if(关系表达式1){
   语句体1
  }else if(关系表达式2){
   语句体2
  }
    ...
  
  }else{
  语句体n
  }

执行流程:
首先还是看关系表达式结果是true还是false,如果是true执行语句体1
如果是false执行关系表达式2,判断关系表达式2的结果是true还是false,然后同上执行。
注意当所有关系都不成立是执行最后一条语句,但是当有一条语句成立是下面的判断就停止执行。
案例:
键盘录入一个成绩病判断成绩等级:
package com.lcn.day03;import java.util.Scanner;public class IfelseDemo6 {/** * 键盘录入一个成绩病判断成绩等级: * 0-60  不及格 * 60-70 及格 * 70-80良 * 80-90好 * 90-100优秀 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入你的成绩:");int scores = sc.nextInt();if(scores>=0&&scores<60){System.out.println("你的成绩等级:不及格");}else if(scores>=60&&scores<70){System.out.println("你的成绩等级:及格");}else if(scores>=70&&scores<80){System.out.println("你的成绩等级:良");}else if(scores>=80&&scores<90){System.out.println("你的成绩等级:好");}else if(scores>=90&&scores<=100){System.out.println("你的成绩等级:优秀");}else{                        System.out.println("您输入的成绩有误,请重新输入");                }}}

结果:
请输入你的成绩:
88
你的成绩等级:好
案例:
package com.lcn.day03;import java.util.Scanner;public class IfelseDemo7 {/** *鍵盤錄入月份輸出對應的季節 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);        System.out.println("请输入一个月份:");        int month = sc.nextInt();                if(month==12||month==1||month==2){        System.out.println(month+"月对应的季节是:冬季");        }else if(month>=3&&month<=5){        System.out.println(month+"月对应的季节是:春季");        }else if(month>=6&&month<=8){        System.out.println(month+"月对应的季节是:夏季");        }else if(month>=9&&month<=11){        System.out.println(month+"月对应的季节是:秋季");        }}}

结果:
请输入一个月份:
12
12月对应的季节是:冬季

if语句的嵌套使用。
案例:获取三个数据中的最大值
package com.lcn.day03;public class IfelseDemo8 {/** * if语句嵌套使用求三个数中的最大数 */public static void main(String[] args) {int a = 20;int b = 30;        int c = 50;        //以前三元做法        int max = (a>c?(a>b?a:b):(b>c?b:c));        System.out.println("三元做法的最大值是:"+max);        //使用if嵌套        if(a>b){//如果成立执行,如果不成立执行else            if(a>c){            max = a;            }else{            max = c;            }        }else{        if(b>c){        max = b;        }else{        max = c;        }        }        System.out.println("if嵌套输出的最大值是:"+max);}}

三元做法的最大值是:50
if嵌套输出的最大值是:50
原创粉丝点击