java学习之路 之 基本语法-程序流程控制-switch语句练习题

public class SwitchTest {
	
	public static void main(String[] args) {
		/*
		switch (变量) { 变量的数据类型必须是byte,char,short,int, String, 枚举对象
			case 常量1 : // if (变量 == 常量1)
				语句1;
				break; // 如果没有break语句, switch不是严格的分支
			case 常量2 : // else if (变量 == 常量2)
				语句2;
				break;
		}
		*/
		int a = 20;
		switch (a) {
			case 10 : // if (a == 10)
				System.out.println("a==10");
				break; // 中断, 打断, 破坏
			case 20 :
				System.out.println("a==20");
				break; // 中断, 打断, 破坏, 
				//如果没有break, 一旦进入case,导致后面的所有case都能进入, 直到遇到break或switch结束
			case 30 :
				System.out.println("a==30");
				break; // 中断, 打断, 破坏
			default : // 缺省 相当于 else 
				System.out.println("default");
				break; // 中断, 打断, 破坏
		}
		System.out.println("after switch"); 
		

	}
}

/*
使用switch语句改写下列if语句:
 int a = 3;
 int x = 100;
 if(a==1)
	x+=5;
 else if(a==2)
	x+=10;
 else if(a==3)
	x+=16;
 else		
	x+=34;
System.out.println(x);
*/
class Exer4 {
	
	public static void main(String[] args) {
		int a = 3;
		int x = 100;
		switch (a) {
			case 1 :
				x += 5;
				break;
			case 2 :
				x += 10;
				break;
			case 3 :
				x += 16;
				break;
			default :
				x += 34;
				break;
		}
		System.out.println(x);
	}
}

class SwitchTest2 {
	//根据从命令行参数获取的月份,打印该月份所属的季节。
	//3,4,5 春季 6,7,8 夏季  9,10,11 秋季 12, 1, 2 冬季
	public static void main(String[] args) {
		int month = Integer.parseInt(args[0]);
		switch (month) {
			case 1 :
			case 2 :
			case 12 :
				System.out.println("冬季");
				break;
			case 3 :
			case 4 :
			case 5 :
				System.out.println("春季");
				break;
			case 6 :
			case 7 :
			case 8 :
				System.out.println("夏季");
				break;
			case 9 :
			case 10 :
			case 11 :
				System.out.println("秋季");
				break;
			default :
				System.out.println("月份错误");
				break;
		}

	}
}


/*
使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输出 “other”。
提示:接收命令行参数的字符方法
char ch = args[0].charAt(0);
*/
public class SwitchTest1 {
	
	public static void main(String[] args) {
		char ch = args[0].charAt(0);
		
		switch (ch) {
			case 'a' :
				System.out.println("A");
				break;
			case 'b' :
				System.out.println("B");
				break;
			case 'c' :
				System.out.println("C");
				break;
			case 'd' :
				System.out.println("D");
				break;
			case 'e' :
				System.out.println("E");
				break;
			default :
				System.out.println("other");
				break;
		}
	}
}

class SwitchTest11 {
	
	public static void main(String[] args) {
		char ch = args[0].charAt(0);
		String str = "Other"; // 先假设一种输出内容
		switch (ch) {
			case 'a' :
			case 'b' :
			case 'c' :
			case 'd' :
			case 'e' :
				str = "" + (char)(ch - 32); // 如果假设不对, 则对之进行修改
		}
		System.out.println(str); // 统一输出即可
	}
}


//对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。
public class SwitchTest2 {
	
	public static void main(String[] args) {
		int score = Integer.parseInt(args[0]);
		
		switch (score / 10) {
			case 0 :
			case 1 :
			case 2 :
			case 3 :
			case 4 :
			case 5 :
				System.out.println("不及格");
				break;
			case 6 :
			case 7 :
			case 8 :
			case 9 :
				System.out.println("及格");
				break;
			default :
				if (score == 100) {
					System.out.println("及格");
					break;
				}
				System.out.println("输入成绩非法");
		}
	}
}

/*
编写程序:从命令行参数中获取一个学生成绩,存放在变量score中,根据score的值输出
其对应的成绩等级:
score>=90        等级:A
70=<score<90     等级: B
60=<score<70     等级: C
score<60         等级:D
int score = Integer.parseInt(args[0]);
*/
public class SwitchTest3 {
	
	public static void main(String[] args) {
		int score = Integer.parseInt(args[0]);
		
		switch (score / 10) {
			case 9 :
				System.out.println("等级:A");
				break;
			case 8 :
			case 7 :
				System.out.println("等级:B");
				break;
			case 6 :
				System.out.println("等级:C");
				break;
			case 5 :
			case 4 :
			case 3 :
			case 2 :
			case 1 :
			case 0 :
				System.out.println("等级:D");
				break;
			default :
				if (score == 100){
					System.out.println("等级:A");
					break;
				}
				System.out.println("输入成绩非法");
				break;
		}
	}
}

/*
接收命令行参数年、月、日,判断这一天是当年的第几天
   注:判断一年是否是闰年的标准:
       1)可以被4整除,但不可被100整除
       2)可以被400整除	 
*/
public class SwitchTest4 {
	
	public static void main(String[] args) {
		int year = Integer.parseInt(args[0]);
		int month = Integer.parseInt(args[1]);
		int day = Integer.parseInt(args[2]);
		int sum = 0;
		
		switch (month) {
			case 12 :
				sum += 30;
			case 11 :
				sum += 31;
			case 10 :
				sum += 30;
			case 9 :
				sum += 31;
			case 8 :
				sum += 31;
			case 7 :
				sum += 30;
			case 6 :
				sum += 31;
			case 5 :
				sum += 30;
			case 4 :
				sum += 31;
			case 3 :
				if (((year % 4 == 0) && (year % 100 != 100)) || (year % 400 == 0)) {
					sum += 29;
				}else {
					sum += 28;
				}
			case 2 :
				sum += 31;
			case 1 :
				sum += day;
				break;
			default :
				System.out.println("输入日期非法");
				break;
		}
		System.out.println("今天是" + year + "年的第" + sum + "天");
	} 
}

class SwitchTest41 {
	
	public static void main(String[] args) {
		int year = Integer.parseInt(args[0]);
		int month = Integer.parseInt(args[1]);
		int day = Integer.parseInt(args[2]);
		int sum = day;
		
		switch (month -1) {
			case 11 :
				sum += 30;
			case 10 :
				sum += 31;
			case 9 :
				sum += 30;
			case 8 :
				sum += 31;
			case 7 :
				sum += 31;
			case 6 :
				sum += 30;
			case 5 :
				sum += 31;
			case 4 :
				sum += 30;
			case 3 :
				sum += 31;
			case 2 :
				sum += 28;
				if (((year % 4 == 0) && (year % 100 != 100)) || (year % 400 == 0)) {
					sum += 1;
				}
			case 1 :
				sum += 31;
				break;
			default :
				System.out.println("输入日期非法");
				break;
		}
		System.out.println("今天是" + year + "年的第" + sum + "天");
	} 
}

你可能感兴趣的:(java,流程控制,计算机,语言)