解析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("求1月1号到7月1号的间距天数");int startMonth=1,finishMonth=7,sumDay=0;boolean flag=false;//flag是用来判断概念是否为闰年,如果是,则flag的值为true//思路:1.判断该年是否为闰年,如果是闰年,二月就有29天,否则只有28天//2.从1月份开始,把每月份的天数加入到间距天数中//3.当所要加入的月份都加入完成后,所得到的结果就是间距天数if(%400==0||(/4==0&&%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判断用户是否正确输入,若正确输入就改为falseScanner 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);}}