Java 选择结构的简单例题(一)

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
你输入的月份不存在!!
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值