Java学习之switch题集锦

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;
        }
    }
}

你可能感兴趣的:(Java学习)