解析java当中switch语句的作用和break、continue关键字的用法
A. switch语句
1.含义
是分支结构,使程序按照条件的判断结果去执行相应的程序代码.
2.语法
switch(变量名){
case值1:
//case值1与变量值相等时,则执行里面待执行的语句
//待执行的语句;
break;
case值2:
//case值2与变量值相等时,则执行里面待执行的语句
//待执行的语句;
break;
.....
case值n:
//case值n与变量值相等时,则执行里面待执行的语句
//待执行的语句;
break;
default:
//当以上case值与变量值都不相同时,则执行里面待执行的语句
//待执行的语句;
break;
}
//其中变量名可以是byte short char int String类型(有些以前的jdk版本不支持String)
3.示例代码如下所示
public class Demo {
public static void main(String[] args) {
System.out.println("求2022年1月1号到2022年7月1号的间距天数");
int startMonth=1,finishMonth=7,sumDay=0;
boolean flag=false;
//flag是用来判断概念是否为闰年,如果是,则flag的值为true
//思路:1.判断该年是否为闰年,如果是闰年,二月就有29天,否则只有28天
//2.从1月份开始,把每月份的天数加入到间距天数中
//3.当所要加入的月份都加入完成后,所得到的结果就是间距天数
if(2022%400==0||(2022/4==0&&2022%100!=0)) {
flag=true;
}
for(int i=startMonth;i<finishMonth;i++) {
switch(i){
case 2:
sumDay+=28;
if(flag) {
sumDay++;
}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sumDay+=31;
break;
case 4:
case 6:
case 9:
case 11:
sumDay+=30;
break;
default:
System.out.print("月份有问题!!!!麻烦检查后再去赋值");
break;
}
}
//最后还要加1,因为前面是算到了6月30号
System.out.print("间隔天数为: "+(++sumDay));
}
}
4.示例代码运行截图如下所示:
B.break关键字
1.含义
跳出当前循环或者switch语句中的关键字
2.语法
循环体写break或者case值(default)的执行语句后面写break
3.示例代码如下所示
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
boolean flag=false;
//flag判断用户是否正确输入,若正确输入就改为false
Scanner s =new Scanner(System.in);
System.out.println("求在1到n之间能同时被2,3,7整除的第一个数");
while(!flag) {
System.out.println("求输入n的值");
int n=s.nextInt();
if(n>1){
flag=true;
for(int i=1;i<=n;i++) {
if(i%2==0&&i%3==0&&i%7==0){
System.out.println("在1到"+n+"之间能同时被2,3,7整除的第一个数为: "+i);
break;
//break是跳出当前for循环,不会跳出外层的while循环,break简单理解为只跳出当前循环且只跳出一次
}
if(i==n){
System.out.println("没有找到符合条件的值 ");
}
}
}else {
System.out.println("输入有误,请重新输入");
}
}
}
}
4.示例代码运行截图如下所示:
当找到符合条件的数时
当没有找到符合条件的数时
C.continue关键字
1.含义
结束当次循环,开启下一次循环。
注意:循环不会跳出!!!
2.语法
循环体写continue,switch里面用continue一般是没有效果的
但如果switch外面套了一层循环的话,可以使用break;
此时代表结束本次循环---->结束当前switch语句;然后开始下一次循环
3.示例代码如下所示
package homework4;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
System.out.println("求出1到n之间的偶数的个数");
Scanner s=new Scanner(System.in);
System.out.println("请输入n的值: ");
int n=s.nextInt();
int evenCount=0;
//evenCount用来存储偶数的个数
for(int i=1;i<=n;i++) {
if(i%2!=0){
continue;
//如果为奇数,就结束当次循环,开启下一次循环
}
evenCount++;
}
System.out.println("1到"+n+"之间的偶数个数为: "+evenCount);
}
}