选择结构(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多选
难点,重点攻克。
格式:
或
流程图

根据表达式的值从匹配的case标签出开始执行,遇到break返回或者一直执行到switch末尾。如果无任何case标签可匹配则进入的default语句(有才进入)。default语句(也可以放到前面,但可能影响效果)可以没有。break结束switch语句。
case标签的值范围:byte、short、int、char、String(JDK1.7以后)、枚举常量、Byte、Short、Integer、Character。
等值/多值判断适合用switch,但是使用if-else if-else多选结构可以完全代替。Switch效率比if-else if-else高。
case标签的值唯一(只能是常量),不能有多个case标签值一样。case标签值类型可以不同。
示例:
Last updated
Was this helpful?