23.选择结构

99封情书 提交于 2020-02-05 09:11:05

if单选择结构

if语句对布尔表达式进行一次判定,若判定为真,则执行{}中的语句块,否则跳过该语句块。

java.lang包中的Math类提供了一些用于数学计算的方法。
/**
 * If
 * @author DELL
 *
 */
public class TestIf {
	public static void main(String[] args) {
		
		double d = Math.random();  //返回 [0, 1)之间的随机数(返回 double 值)
		System.out.println(d);
		System.out.println((int) (6*Math.random()) );  //返回[0,5]之间的随机数
		
		//投骰子
		int I = (int) (6*Math.random()+1);
		System.out.println("I = "+I);
		
		if(I<=3) {
			System.out.println("小");
		}
		
		

        //通过掷三个骰子看看今天的手气如何?
        int i = (int)(6 * Math.random()) + 1;//通过Math.random()产生随机数
        int j = (int)(6 * Math.random()) + 1;
        int k = (int)(6 * Math.random()) + 1;
        int count = i + j + k;
        //如果三个骰子之和大于15,则手气不错
        if(count > 15) {
            System.out.println("今天手气不错");
        }
        //如果三个骰子之和在10到15之间,则手气一般
        if(count >= 10 && count <= 15) { //错误写法:10<=count<=15
            System.out.println("今天手气很一般");
        }
        //如果三个骰子之和小于10,则手气不怎么样
        if(count < 10) {
            System.out.println("今天手气不怎么样");
        }
        System.out.println("得了" + count + "分");			
	}
}


if-else双选择结构

当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。


public class TestIfElse {
	public static void main(String[] args) {		
		int h = (int) (6*Math.random()+1);
		System.out.println(h);
		if(h<=3) {
			System.out.println("小");
		}else {
			System.out.println("大");
		}
		
		
		System.out.println("######################");
        //随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长
        double r = 4 * Math.random();
        //Math.pow(r, 2)求半径r的平方
        double area = Math.PI * Math.pow(r, 2);
        double circle = 2 * Math.PI * r;
        System.out.println("半径为: " + r);
        System.out.println("面积为: " + area);
        System.out.println("周长为: " + circle);
        //如果面积>=周长,则输出"面积大于等于周长",否则,输出周长大于面积
        if(area >= circle) {
            System.out.println("面积大于等于周长");
        } else {
            System.out.println("周长大于面积");
        }

		
	}
}

if-else if-else多选择结构

当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式2为真时,执行语句块2;否则,继续判断布尔表达式3······;如果1~n个布尔表达式均判定为假时,则执行语句块n+1,也就是else部分


public class TestIfElseIfElse {
	public static void main(String[] args) {
		
	    int age = (int) (100 * Math.random());
	    System.out.print("年龄是" + age + ", 属于");
	    if (age < 15) {
	        System.out.println("儿童, 喜欢玩!");
	    } else if (age < 25) {
	        System.out.println("青年, 要学习!");
	    } else if (age < 45) {
	        System.out.println("中年, 要工作!");
	    } else if (age < 65) {
	        System.out.println("中老年, 要补钙!");
	    } else if (age < 85) {
	        System.out.println("老年, 多运动!");
	    } else {
	        System.out.println("老寿星, 古来稀!");
	    }

	}
}

switch选择结构

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。

根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。

大家要注意,当布尔表达式是等值判断的情况,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构。

/**
 * switch
 * @author DELL
 *
 */
public class TestSwitch {
	public static void main(String[] args) {
		//int month = 1;
		int month = (int)(12*Math.random()+1);
		System.out.println("月份:"+month);
		
		switch(month) {
		case 1:
			System.out.println("一月份!过新年了");
			break;
		case 2:
			System.out.println("二月份!开春了!");
			break;
		default:
			System.out.println("我是其它月份!");
			break;
		}
		
		

        char c = 'a';
        int rand = (int) (26 * Math.random());
        char c2 = (char) (c + rand);
        System.out.print(c2 + ": ");
        switch (c2) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            System.out.println("元音");
            break;
        case 'y':
        case 'w':
            System.out.println("半元音");
            break;
        default:
            System.out.println("辅音");
        }	
        
        
	}
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!