```java
/*多层判断*/
if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
```
示例:
```java
//需求,根据客户定义的数值判定所属的季节。
//定义是3,4,5月属于春季,6,7,8月属于夏季,9,10,11月属于秋季,12,1,2月属于冬季。
class IfSeason
{
public static void main(String[] args)
{
int month = 7;
if(month>12 || month<1)
System.out.println("该月份不存在");
else if(month>=3 && month<=5)
System.out.println(month+"月属于春季");
else if(month>=6 && month<=8)
System.out.println(month+"月属于夏季");
else if(month>=9 && month<=11)
System.out.println(month+"月属于秋季");
else
System.out.println(month+"月属于冬季");
}
}
```
结果如下:
tips:注意main函数的格式规范,中间没有点,结尾没有分号,另外执行.class文件时注意类名和程序的一致性。
###选择结构
> ####switch语句格式
```java
switch(表达式)//表达式只接受四种类型的变量:byte,short,int,char。
{
/*case与default没有顺序,总是从第一个case开始执行,default不管在哪个位置都是所有case判定不通过后才执行。*/
/*switch语句执行到break或者结束大括号才算执行完毕。如果遇到符合条件的case或者default但是后面没有break,那么它会将此case或default后面的语句全部顺序执行并且不再判断case的值,直到遇到break或者大括号。*/
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;//最后的break可以省略。
}
```
示例:
```java
class SwitchDemo
{
public static void main(String[] args)
{
int x = 5;
switch(x)
{
/*先依次执行case判定,没有符合条件的项,就直接执行default,执行完后既没有遇到break语句也没有遇到大括号,则将default后面的语句不判定case依次执行直到遇到break或者大括号。*/
default:
System.out.println("wrong");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
}
}
}
```
结果:
Tips:多个case可以对应同一个执行语句,例如:
```java
int x = 4;
swich(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"属于春季");
break;
default:
System.out.println(x+"不属于春季或者输入错误");
break;
}
```
**if语句和switch语句的联系和区别:**
if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断;而 switch 只能对四种基本类型进行数值比较。(5.0版本增加了枚举类型,7.0增加了字符串。)
如果判定的数值不多,并且符合四种类型,可以用switch,效率稍高。
其他情况:对区间判断,对boolean类型判断,使用if,if的使用范围更广。
###循环结构
代表语句:while,do while,for
>
####while语句格式
```java
while(条件表达式)//while语句条件表达式后面不能跟分号,虽然编译可以通过但是会陷入死循环。
{
执行语句(循环体);
}//while的特点是先判定条件,满足才执行循环体。
```
tips:`ctrl+c`强制结束命令行执行。
####do while语句格式
```java
do
{
执行语句;
}while(条件表达式);//do while的特点是先执行一次循环体,再判定条件,即无论条件是否满足,循环体都至少执行一次。
```
####for语句格式
```java
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
(循环体)执行语句;
}//执行顺序是:初始化表达式->循环条件表达式->循环体-循环后的操作表达式->循环条件表达式……直到不满足循环条件。
```
待续