title: 选择与循环
date: 2020-05-06 13:01:05
tags:
选择结构
if选择结构
if(布尔条件){
... //如果条件为真 则执行
}
if后如果只有一条语句,则{}可以省略(但不建议省略);如果多条语句,则{}不能省略
if...else...选择结构
简单的if...else...可以等价为 三目运算符
随机数
//输出[0,1)的随机小数
System.out.println(Math.random());
//输出四位随机整数
System.out.println((int)(Math.random()*9000)+1000);
//输出三位随机整数
System.out.println((int)(Math.random()*900)+100);
//n位数的随机整数
(int)(Math.random()*(最大值+1-最小值))+n位数的最小值
if()A...else B..s是对立事件,非此即彼
多种if:多重选择
if(){
}else if{
}else if{
}else if{
}
分析时,可以借助于 数轴
多重if,编写顺序:严格优先判断(>/>=,数字越大,越优先判断;</<=数字越小,越优先判断)
嵌套if
if(){
if(){
if(){
}
}
}else{
}
区分:多重if 和 嵌套if:
判断是否是同一件事情,如果是同一件事情用多重;否则(不是同一件事情),用嵌套。
int rank = 20;
switch (rank){
case 1:
System.out.println("笔记本电脑");
break; //break:表示整个switch结束
case 2:
System.out.println("U盘");
break;
case 3:
System.out.println("奖励夏令营");
break;
default:
System.out.println("不奖励");
break;
}
switch会用 rank和所有的case匹配,如果匹配成功,则执行相应case后的语句,知道遇到break结束;
在switch中,如果rank和所有的case都不匹配,则执行default。
switch后支持的表达式类型:int short byte char String 枚举
case后面的值必须是常量,case值不能重复
default可省略
switch判断条件范围
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9f1nBz7j-1593679943545)(https://s1.ax1x.com/2020/05/14/YBfRsS.png)]
switch只有遇到break和最后的大括号才结束,否则不结束。
break一般不建议省略,但个别情况可以省略
例如:
int month = 5;
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("是大月...");
break;
}
多重if...和switch区别?
如果判断的是区间值,多重if;如果是离散/单点值,switch。