package basis.day02;
/**
* switch语句改写
* @author LENOVO
*
*/
public class HomeWorkSwitch_01 {
public static void main(String[] args){
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); //116
/*
* 使用switch语句
*/
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);
}
}
几个case执行语句一致时,switch解决的简单方法:
其中灵活运用case穿透和break。
package basis.day02;
import java.util.Scanner;
/**
* 从键盘读入一个学生成绩,存放在变量score中,
* 根据score的值输出其对应的成绩等级
* 注:若是几个case中的执行语句一致,可以写到一起。
* (如:case 1:
* case 2:
* case 3:
* 执行语句;
* break;)
* 若是不写break,程序将从符合条件的语句一致执行到switch末尾
* @author LENOVO
*
*/
public class HomeWorkSwitch_02 {
public static void main(String[] args){
//创建Scanner类对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生成绩:");
//从键盘获取学生成绩
int score = sc.nextInt();
switch(score / 10){
case 10: //若score / 10 == 10 ,程序一直会执行到case 9 下的break。(从而达到 【90-100】A等级要求 )
case 9:
System.out.println("成绩等级为A");
break;
case 8:
case 7:
System.out.println("成绩等级为B");
break;
case 6:
case 5:
System.out.println("成绩等级为C");
break;
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("成绩等级为D");
break;
default:
System.out.println("输入有误");
break;
}
}
}
从控制台获取char型数据的方法:
先拿String,再调用String中的charAt(int index)方法
package basis.day02;
import java.util.Scanner;
/**
* 使用switch把小写类型的char型转为大写。
* 只转换a,b,c,d,e.其他的输出"other".
* @author LENOVO
*
*/
public class HomeWorkSwitch_03 {
public static void main(String[] args){
/*
*从控制台获取char型数据
*Scanner类中没有直接获取char型数据的方法
*通过调用nextLine()方法,该方法返回String型数据
*通过调用String类中charAt(int index),返回char型数据
*java中从控制台获取char类型基本都是通过先得到String型数据,再用charAt()获得char型
*/
//char word = 'a'; //a97 A65
//从控制台获取char型数据
Scanner sc = new Scanner(System.in); //System.in 返回 static InputStream
//Scanner调用Scanner(InputStream source)构造方法
System.out.println("请输入char型数据:");
//从控制台获取char型数据
char word = sc.nextLine().charAt(0); //通过调用nextLine()方法,该方法返回String型数据
//通过调用String类中charAt(int index),返回char型数据
switch(word){
case 'a':
System.out.println((char)('a' - 32));
break;
case 'b':
System.out.println((char)('b' - 32));
break;
case 'c':
System.out.println((char)('c' - 32));
break;
case 'd':
System.out.println((char)('d' - 32));
break;
case 'e':
System.out.println((char)('e' - 32));
break;
default:
System.out.println("other");
}
}
}
package basis.day02;
import java.util.Scanner;
/**
* 对学生成绩大于60分的,输出“合格”。低于60分,输出“不合格”。
* @author LENOVO
*
*/
public class HomeWorkSwitch_04 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生成绩:");
//获取成绩
int score = sc.nextInt();
//判断
switch(score / 60){
case 0:
System.out.println("不合格");
break;
case 1:
System.out.println("合格");
break;
default:
System.out.println("输入有误,请重新输入。");
break;
}
}
}
package basis.day02;
import java.util.Scanner;
/**
* 根据指定月份,打印该月份所属的季节,3,4,5春季
* 6,7,8夏季 9,10,11秋季12,1,2冬季
* 当多个case条件执行语句一致是可以按照以下方式写,
* 若没有break,程序从符合条件处开始执行一致到break或者switch末尾
* @author LENOVO
*
*/
public class HomeWorkSwitch_05 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份(1-12)");
//从控制台获取月份
int month = sc.nextInt();
//判断
switch(month){
case 12:
case 1:
case 2:
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;
}
}
}