Java 选择结构的简单例题(一)
(1)if else continue
逢七必过:从0开始输出,遇到7的倍数,各位或十位有7的数字,跳过此数字,继续向下输出,值到100结束。
此题中,可以利用 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
(2)switch (击穿)
求每一年剩下的天数,输入年月日,求出在此年所剩于的天数。
我们可以利用 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
你输入的月份不存在!!