有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用if-else语句进行java分级

import java.util.Scanner;

public class grade   {
public static void main(String args[])       {

Scanner input = new Scanner(System.in);

double no;
System.out.print("Please enter your CPA: ");

no = input.nextDouble();

if (2.00<=no)//2.00<=CPA<= 2.49
System.out.println("forth class");

else if (2.50<=no)//2.50<=CPA<=2.99
System.out.println("third class");

else if (3.00<=no)//3.00<=CPA<=3.74
System.out.println("second class");

else if (3.74<=no)//(no>=3.75)
System.out.println("first class");

else
     System.out.println("You did not follow the order.");

     }  }

例如,如果我输入3.5年级,它将打印第四节课,如果我输入4.00,它也将打印第四节课。为什么它没有打印出确切的答案


共 (6) 个答案

  1. # 1 楼答案

    因为3.5和4都大于2,所以你可以在这里给我们一个切换语句

  2. # 2 楼答案

    这是一个简单的if-else语句问题。您忘记在语句中设置边界(范围值)

  3. # 3 楼答案

    您正在获得预期的输出,因为您当前只检查它是否超过某个数字,请尝试交换顺序,并在每个语句中添加类似的内容:

    if (no>=2.00 && no<=2.49)//2.00<=CPA<= 2.49
    System.out.println("forth class");
    
    else if (no>=2.50 && no<=2.99)//2.50<=CPA<=2.99
    System.out.println("third class");
    
    else if (no>=3.00 && no<=3.74)//3.00<=CPA<=3.74
    System.out.println("second class");
    
    else if (no>=3.75)//(no>=3.75)
    System.out.println("first class");
    
    else
    System.out.println("You did not follow the order.");
    
  4. # 4 楼答案

    对于3.5和4.0,第一个条件if (2.00<=no)的计算结果均为true。跳过所有其他子句,这就是if语句的工作原理:-)

  5. # 5 楼答案

    应该的。因为forth class通过以下方式给出

    if (2.00<=no)
     System.out.println("forth class");  // both 3.5 and 4.00 are satisfy this.
                                         // 3.5 >2.00 as well as 4.00>2.00
    

    现在你可以看到你的逻辑不正确了。任何大于2.00的值都将满足这一要求

    只要改变你的逻辑顺序

    if (3.74 <= no) {
        System.out.println("first class");
    } else if (3.00 <= no) {
        System.out.println("second class");
    } else if (2.50 <= no) {
        System.out.println("third class");
    } else if (2.00 <= no) {
        System.out.println("forth class");
    } else {
        System.out.println("You did not follow the order.");
    }
    
  6. # 6 楼答案

    你只需要添加&&;(和)在你的情况下就像

    if (2.00<=no && no < 2.50)
     System.out.println("forth class");