java流程控制之选择结构(if语句,switch语句)

选择结构


选择结构也被称为分支结构,判断语句。我们用到的是`if`和`switch`语句。

if语句

1.1:用于一个条件的判断,如果满足就会执行

语句格式:

if(判断表达式){
条件表达式为true的时候执行的内容             
}

案例: 某公司应聘员工要求必须要有两年工作经验以上的人员才能投寄简历。
分析: 1. 定义变量存放工龄; 2. 用工龄和要求进行对比; 3. 如果为true,投寄简历
public class Test{
public static void main(String [] args){
	int work=3;//小张
	if(work>2){
	System.out.println("可以投寄简历");
	}
	}
}

1.2:用于两种条件的判断

语句格式:

if(){
	满足条件执行的语句 
}else{
	不满足条件执行的语句}

案例:某公司应聘员工要求必须要有两年工作经验以上的人员才能投寄简历,不满足的给个友好的提示。
分析: 1. 定义变量存放工龄; 2. 用工龄和要求进行对比; 3. 如果为true,投寄简历,false则告诉用户不满足条件
public class Test{
public static void main(String [] args){
	int work=3;//小张
	if(work>2){
	System.out.println("可以投寄简历");
	}else{
	System.out.println("不满足投寄条件");
	}
	}
}

案例:我们定义一个年份来判断是否是闰年

分析:1.定义变量存放年份信息;2.判断是否符合闰年的规则;3.输出打印结果
闰年:可以被4整除,不能被100整除,或者可以被400整除

public class Test{
public static void main(String [] args){
    int year = 2000;
    if(year %4==0 && year %100!=0 || year %400==0){
    System.out.println("闰年");
    }else{
    System.out.println(year+"不是闰年");
    }
  }
}

1.3:用于多种条件的判断

语句格式:

if(){
	满足条件执行的语句 
 }else if{
	或者满足另一个条件执行的语句
	}else{
	不满足执行的语句
	}

案例:输入数字1-7,对应输出是星期几
分析: 1. 定义变量数据信息; 2. 用该数据信息和要求进行对比; 3. 对应输出结果,不满足输出提示
 public class Test{
    public static void main(String [] args){
	int day = 1;
	if(day==1){
	System.out.println("周一");
}else if(day==2){
	System.out.println("周二");
}else if(day == 3){
	System.out.println("周三");
}else if(day == 4){
	System.out.println("周四");
}else if(day == 5){
	System.out.println("周五");
}else if(day == 6){
	System.out.println("周六");
}else if(day == 7){
	System.out.println("周日");
}else{
System.out.println("不在一周的数字范围内");
	}
	}
}

1.4:if语句的总结

注意事项:
  1. if语句可以单独使用,else不能单独使用。
  2. if语句后面不能加分号,一旦加了分号,就表示和后面没有任何关系了。
  3. if或者else语句,只有一句输出的时候,大括号可以忽略不写,但是不建议使用。
if(work >2 && age<35)//满足
	System.out.println(“投寄简历”);
else //不满足
	System.out.println("不满足条件");
  1. if语句可以嵌套多个ifelse语句,次数没有限制。
  2. System.out.println("work>2 && age<35 ? "投寄简历":"不满足条件")我们可以用这样的三元表达式来简化if else语句,但是弊端因为三元表达式是一个运算符,所以必须要有结果。如果有多个嵌套,建议使用if else
switch语句

语句格式:

switch(表达式){
case 值1:执行语句;
case 值2:执行语句;
....
default:执行语句;
break
}

语句结构体分析:
  1. 只能为byte、short、int、char(jdk6.0后的String)类型
  2. case后面的值只能唯一,不能重复,只能是常量
  3. break一旦遇到,结束switch语句
  4. 如果case执行语句后面不写break,会一直执行下去,直到遇到break,或者程序结束为止
  5. 默认default语句块,可以在程序的任意位置,它的执行的顺序是先判断所有的case,当所有的case都不满足,才会执行default语句,建议放在最后
  6. 当有多个内容相同输出的时候,可以简写成:
case 1: case 2: case 3 
System.out.println("......");
 break;

案例:根据数字判断今天是周几

public class Test{
    public static void main(String [] args){
	int day = 1;
	switch(day){
	case 1 :System.out.println(“周一”)
	break;
	case 2 :System.out.println(“周二”)
	break;
	case 3 :System.out.println(“周三”)
	break;
	case 4 :System.out.println(“周四”)
	break;
	case 5 :System.out.println(“周五”)
	break;
	case 6 :System.out.println(“周六”)
	break;
	case 7 :System.out.println(“周日”)
	break;	
	default:System.out.println(“不在一周范围内”);
	break;
	}
	}
}

案例:判断春夏秋冬
可以直接留一个输出,保留break;这样可以用到case穿透性作用域


public class test1 {
    public static void main(String[] args) {
        int m=3;      //要判断的月份
        switch (m){
            case 3: case 4: case 5:        //switch的穿透性
                System.out.println("春天");
                break;
            case 6: case 7: case 8:
                System.out.println("夏天");
                break;
            case 9: case 10: case 11:
                System.out.println("秋天");
            case 12: case 1: case 2:
                System.out.println("冬天");
                default
                    break;
        }
    }
}

这里运用了switch的穿透性,即一个case中没有break结束的话程序会一直执行下去。

if和switch的区别

相同点:都可以用于分支结构;
不同点:使用场景不同;if主要用在判断数据区间的时候,switch主要用在判断值不多,并且值类型为byte、short、int、char、String类型的时候。
如果两种情况都可以使用,建议使用switch

你可能感兴趣的:(javaSE)