一. 块作用域
不能在嵌套的两个块中声明同名的变量。
public static void main(String[] args){
int n;
. . .
{
int k;
int n; // Error--can't redefine n in inner block
. . .
}
}
二. if语句
- 三元运算符的操作都可以用if语句改进,反之不成立。
当if语句控制的语句体是一条输出语句时。
习题1:获取两个数中的最大值
习题2:判断一个数是奇数还是偶数
习题3:键盘录入一个成绩,判断并输出成绩的等级。
90-100:优秀
80-90:好
70-80:良
60-70:及格
60以下:不及格
习题四:获取三个数据中的最大值
三. switch语句
- switch语句格式:
switch(表达式)
{
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
- 执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
- case标签可以是:
- byte,short,int,char。
- JDK5以后可以是枚举
- JDK7以后可以是String
荔枝一:
String input = . . .;
switch (input.toLowerCase())
{
case "yes": // OK since Java SE 7
. . .
break;
. . .
}
荔枝二:不必在每个标签中指明枚举类。
enum Size{SMALL,MEDIUM,LARGE};
Size sz = . . .;
switch (sz)
{
case SMALL: // no need to use Size.SMALL
. . .
break;
. . .
}
- 注意事项:
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的。
- default可以省略但是不建议,可用来对不正确的输入给出提示。特殊情况:case的值时固定的,如单选题。
- default可以放在任何位置。建议放在最后。
- switch语句的结束条件:
- 遇到break
- 执行到程序的末尾
习题五:看程序写结果
int a=2;
int b=3;
switch(a){
default:b++;
case 3: b++;
case 4 :b++;
}
System.out.println("b="+b);
b=6
习题六:键盘录入月份,输出相应季节