此题中,可以利用 continue 的特性,将 continue 放在输出语句之前。如果遇到的数字需要跳过,则执行 continue 语句,使代码不执行输出语句,如果不是,则执行输出语句。 (1)逢7必过
public class Seven { public static void main(String[] args) { /* 输出1~100之内,非7的倍数,不含有7的数字 (1).不是7的倍数 (2).不含有7的数字 当满足这两个情况时,应执行continue语句。 */ int count = 0; for(int i = 0;i<100;i++){ //i%7 == 0,除以7余数是0,相当于是7的倍数 //i/10 == 7 || i%10 == 7,相当于十位数为7和个位数为7 if(i%7 == 0){ continue; }else if(i/10 == 7 || i%10 == 7){ continue; }else { count++; System.out.print(i +"\t"); if(count%10 == 0){ System.out.println(); } } } } }代码执行结果为:
D:\>javac Seven.java D:\>java Seven 1 2 3 4 5 6 8 9 10 11 12 13 15 16 18 19 20 22 23 24 25 26 29 30 31 32 33 34 36 38 39 40 41 43 44 45 46 48 50 51 52 53 54 55 58 59 60 61 62 64 65 66 68 69 80 81 82 83 85 86 88 89 90 92 93 94 95 96 99我们可以利用 switch 语句中无 break 语句进行求解,在输入的月份之后,将所有剩余的天数进行相加。 (2)利用switch特性求出剩余的天数
import java.util.*; public class Year { public static void main(String[] args) { //Scanner类接受输入的数字,year,month,day年月日 Scanner sc = new Scanner(System.in); System.out.println("输入要求剩余天数的年月日:"); int year = sc.nextInt(); int month = sc.nextInt(); int day = sc.nextInt(); //month为哪个月份便执行相对应的语句,在二月需要判断是否为闰年判断 //在每个月份进行if判断,是当输入的月份为当前月份时,需要求出剩余的天数 //因为没有break语句,便会继续向下执行,不是当前月份,则加上本月的天数 switch (month) { case 1 : day = 31 - day; case 2 : if((year%4 ==0 && year%100 != 0) || (year%400 == 0)){ if(month == 2){ day = 29 - day; }else{ day = day + 29; } }else{ if(month == 2){ day = 28 - day; }else{ day = day + 28; } } case 3 : if(month == 3){ day = 31 - day; }else{ day = day + 31; } case 4 : if(month == 4){ day = 30 - day; }else{ day = day + 30; } case 5 : if(month == 5){ day = 31 - day; }else{ day = day + 31; } case 6 : if(month == 6){ day = 30 - day; }else{ day = day + 30; } case 7 : if(month == 7){ day = 31 - day; }else{ day = day + 31; } case 8 : if(month == 8){ day = 31 - day; }else{ day = day + 31; } case 9 : if(month == 9){ day = 30 - day; }else{ day = day + 30; } case 10 : if(month == 10){ day = 31 - day; }else{ day = day + 31; } case 11 : if(month == 11){ day = 30 - day; }else{ day = day + 30; } case 12 : if(month == 12){ day = 31 - day; }else{ day = day + 31; } //如果输入的月份正常,则不需要执行default语句,再此加break,跳出 break; default : System.out.println("你输入的月份不存在!!"); } //当输入的月份正常,则正常输出剩余天数 if(month>0 && month<=12){ System.out.println("所求年份所剩的天数为:" +day); } } }运行结果为:
D:\>javac Year.java D:\>java Year 输入要求剩余天数的年月日: 2019 10 31 所求年份所剩的天数为:61 D:\>java Year 输入要求剩余天数的年月日: 2004 13 23 你输入的月份不存在!!