选择结构(if-else/swtich)

  • 逻辑:如果…,则…。

  • 分为:if单选择、if-else双选、if-else if-else多选、switch多选。

  • 注意:if(flag){}等同于if(flag==true){},不管flag的值是true还是false。

if单选择结构

格式:

if(布尔表达式){
  语句块
}

示例:

package com.itcode.demo1;  

/**      
 * @author: 成都码到功成学员  
 * @Description:  
 * 抛骰子游戏 
 */  
public class TestIf {  

    public static void main(String[] args) {    

         System.out.println(Math.random());// 产生一个范围在(0,1)之间的double  
         System.out.println((int)(Math.random()*6 + 1));// 产生一个范围在(0,6)  
         int a = (int) (Math.random()*6+1);    
         int b = (int) (Math.random()*6+1);    
         int c = (int) (Math.random()*6+1);    
         int d = a + b + c;    
         System.out.println(d);    
         if(d <= 5) {    
             System.out.println("手气差");    
         }    
         if(d>5 && d<11) {    
             System.out.println("手气一般");    
         }    
         if(d >= 11) {    
             System.out.println("手气还可以");    
         }    
     }  
}

建议:

if语句不写{},作用域为后面的第一条语句。 强烈建议任何时候都加上{}。

if-else双选

格式:

布尔表达式为真执行语句块1,反之执行语句块2。

示例:

效果:

if-else if-else多选

格式:

按照顺序从上往下挨着去和布尔表达式1……布尔表达式n一一判断,判断到哪个表达式为true就执行相应语句块。如果一直判断到布尔表达式都为false,那就执行else里的语句块n+1。

示例:

switch多选

难点,重点攻克。

格式:

流程图

    1. 根据表达式的值从匹配的case标签出开始执行,遇到break返回或者一直执行到switch末尾。如果无任何case标签可匹配则进入的default语句(有才进入)。default语句(也可以放到前面,但可能影响效果)可以没有。break结束switch语句。

    1. case标签的值范围:byte、short、int、char、String(JDK1.7以后)、枚举常量、Byte、Short、Integer、Character

    1. 等值/多值判断适合用switch,但是使用if-else if-else多选结构可以完全代替。Switch效率比if-else if-else高。

    1. case标签的值唯一(只能是常量),不能有多个case标签值一样。case标签值类型可以不同。

示例:

Last updated

Was this helpful?