繁体   English   中英

在交换机上如何在案例JAVA上使用逻辑运算符

[英]On Switch How to use logic operator on case JAVA

我有一个问题,我不知道要放在案例部分,每当用户输入0-100的分数时,就会输出与他们的分数相对应的等级,即好,很好,非常好。

import java.util.Scanner;
public class ProgTestI {


    public static void main (String args[]){

        Scanner pao = new Scanner(System.in);
        System.out.print("Grades: ");
        String grades = pao.next();
        int grado = Integer.parseInt(grades);

        switch (grado){

        case =<74: /* iwant to put 0 to 74*/

            System.out.println("Failed");



        case : /* 75-80*/

            System.out.println("bellow average");


        case : /*81-85*/

            System.out.println("average");

        case : /*86-90*/

            System.out.println("Good");

        case : /*91-96*/

            System.out.println("VeryGood");

        default:







        }




    }

}

您不能将switch用于范围,需要用适当的if / else块替换此代码块。 开关仅适用于数值,但它的作用类似于

if(numericVal == 40)

因此,为范围编写它是……浪费代码,并且不可读。

您需要重写它:

if( g <= 74){
 ...
}else if( g > 74 && g <= 80 ){ 
...

您的案例代码不正确,您可以按照Beri所述进行操作。

如果要在应用程序中实现switch语句,则可以执行以下操作:

public static void main(String[] args) {
    Scanner pao = new Scanner(System.in);
    System.out.print("Grades: ");
    String grades = pao.next();
    int grado = Integer.parseInt(grades);
    int checkedCase=0;
    if(grado<=74){
        checkedCase=1;
    }
    else if(grado>=75&&grado<=80){
        checkedCase=2;
    }
    else if(grado>=81&&grado<=85){
        checkedCase=3;
    }
    else if(grado>=86&&grado<=90){
        checkedCase=4;
    }
    else if(grado>=91&&grado<=96){
        checkedCase=5;
    }

    switch (checkedCase){

    case 1: /* iwant to put 0 to 74*/

        System.out.println("Failed");
        break;


    case 2: /* 75-80*/

        System.out.println("bellow average");
        break;

    case 3: /*81-85*/

        System.out.println("average");
        break;
    case 4: /*86-90*/

        System.out.println("Good");
        break;
    case 5: /*91-96*/

        System.out.println("VeryGood");
           break;

    default: System.out.println("Please enter a value in range 0-96");
        break;
  }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM