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;
}
一些建议和规则:
多个case后的常量值不可以重复。
break 不要遗漏, 否则会失去 "多分支选择" 的效果
switch 不能表达复杂的条件(不能用switch语句判断区间)
switch 虽然支持嵌套, 但是很丑,一般不推荐~
注意事项【与C不同】
switch的括号内只能是以下类型的表达式:
基本类型:byte、char、short、int。【注意不能是long类型和boolean类型】
引用类型:String常量串、枚举类型。
使用long类型或boolean类型会报错:
可以使用字符串类型:
cpp复制代码
public static void main(String[] args) {
String a = "hello";
switch(a){
case "true":
System.out.println("true");
break;
case "false":
System.out.println("false");
break;
default:
System.out.println(a);
}
}
输出:
3. 循环结构【与C略有不同】
3.1 while循环
语法格式:
复制代码
while(循环条件){
循环语句;
}
循环条件为 true, 则执行循环语句; 否则结束循环.
注意:while中的循环条件也必须是布尔表达式,这点与C语言不一样。
代码示例1: 打印 1 - 10 的数字
cpp复制代码
int num = 1;
while (num <= 10) {
System.out.println(num);
num++;
}
* break和continue
break
break 的功能是让循环提前结束.
代码示例: 找到 100 - 200 中第一个 3 的倍数
cpp复制代码
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
}
num++;
}
// 执行结果
找到了 3 的倍数, 为:102
执行到 break 就会让循环结束.
continue
continue 的功能是跳过这次循环, 立即进入下次循环.
代码示例: 找到 100 - 200 中所有 3 的倍数
cpp复制代码
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 这里的 ++ 不要忘记! 否则会死循环.
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++;
}
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("sum = " + sum);
// 执行结果
5050
3.3 do while循环
语法格式:
do{
循环语句;
}while(循环条件);
先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。
【注意事项】
do while 循环最后的分号不要忘记
一般 do while 很少用到, 更推荐使用 for 和 while.
* 输入的判断(hasNext)
当我们以循环读入的结束判断作为while的循环条件的话,我们需要用到hasnext。
例如:使用 Scanner 循环读取 N 个数字,并求取其平均值
cpp复制代码
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
cpp复制代码
// 执行结果
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1
注意事项: 当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).