第三章:选择结构
程序中除了我们这两天编写的顺序控制语句之外,还存在选择控制语句、循环控制语句等等。
想界定是不是编程语言,就必须要看看它是否存在选择和循环结构。
一、 掌握if选择结构
1.掌握基础if
if(条件表达式){
// 条件成立之后的执行内容
}
单分支选择
2. 掌握if-else互斥分支
三元运算符
if(条件表达式){
// 条件成立执行的内容
}else{
// 条件不成立执行的内容
}
3. 掌握if-else if-else选择结构(多重选择)
if(条件1){
}else if(条件2){
}else{
}
if(level >= 80){
}
if(level >= 60){
}
if(level >= 80){
}else if(level >= 60){
}
注意事项:
3.1多重if里的else if一定要结合if使用,不能单独使用
3. 2多重if可以写n个else if 也可以添加else作为补充语句。(根据需求)3
4. 3多重if是自上而下执行判断的,只要有一个条件满足,剩下的判断都不会再执行。
必须保证一定的顺序.
4 掌握嵌套if选择结构
if选择结构是可以随意进行嵌套的!
根据需求来嵌套即可。
if(){
if(){
}
}
二、掌握switch选择结构
需求:豆涵参加谷歌编程大赛!如果他获得一等奖,奖励董凯源一个。如果他获得二等奖,奖励李天义一个。如果他获得三等奖,奖励女朋友一个。
// 创建Scanner对象
Scanner input = new Scanner(System.in);
// 提示输入豆涵的成绩
System.out.print("请输入豆涵获得的名次:");
int level = input.nextInt();
// 套用多重if语法来实现输出
if(level == 1) {
System.out.println("恭喜!抱得董凯源一个!");
}else if(level == 2) {
System.out.println("恭喜!抱得李天义一个!");
}else if(level == 3) {
System.out.println("很遗憾!不小心获得女朋友一个!");
}
// 创建Scanner对象
Scanner input = new Scanner(System.in);
// 提示输入豆涵的成绩
System.out.print("请输入豆涵获得的名次:");
int level = input.nextInt();
// 套用switch语法实现输出【最好保证完整的switch语句】
switch(level) {
case 1: // level == 1
System.out.println("恭喜!抱得董凯源一个!");
break;
case 2: // level == 2
System.out.println("恭喜!抱得李天义一个!");
break;
case 3:
System.out.println("很遗憾!不小心获得女朋友一个!");
break;
default:
System.out.println("很遗憾!没有中奖!再接再励!");
break;
}
swtich的注意事项
switch中如果没有特殊情况不要省略break,如果省略会出现case穿透。
功法没有正邪之分。
// 定义当前的星期
int dayOfWeek = 2;
// 套用switch
switch(dayOfWeek) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("好好学习!天天向上!上学期间!不搞对象!关上门都是一家人!搞对象就是乱伦!");
break;
case 6:
case 7:
System.out.println("好好休息!打打篮球!");
break;
default:
break;
}
switch中最好在最后添加默认的处理default。
switch中的case后都是常量,且需要唯一。
switch注意缩进。
switch支持的表达式类型
switch支持int String(JDK7) enum枚举,byte short char因为可以自动类型转换为int 所以也支持。
/**
* 字符的特殊性
* @author Charles
* 2019年3月18日 上午9:41:41
*/
public class Demo5 {
public static void main(String[] args) {
// A:65 a:97
char alpha = 'B';
// 如果字符遇到++和-- 那么就是在ASCII码表中递增递减字符
/*alpha ++;
System.out.println(alpha);*/
// 如果字符遇到了数值计算 那么它会拿着ASCII码表的值来进行计算。
// 67 ASCII码表
System.out.println(alpha + 1);
}
}
三、了解switch和if的区别和使用场景
相同点:
switch和if都是选择结构。
switch和if都可以用来做等值判断。
不同点:
switch和if语法不同。
switch只能用于等值判断 而if不仅可以用于等值判断还可以用于范围判断。
(了解)在以前移动端设备内存等配置极低时,推荐出现等值判断时采用switch,因为相对来讲它的性能比if要好,当然现在设备性能已经很高了,可以忽略不计。