【问题标题】:I still keep getting the Else statement printing for this grading Java code我仍然不断为这个评分 Java 代码打印 Else 语句
【发布时间】:2021-05-20 15:32:22
【问题描述】:

对于下面的代码,这只是我正在编码的一部分。我需要帮助弄清楚为什么无论我输入什么数字,它都只会打印出 Else 语句。

System.out.println("提供一个1-100之间的整数来判断奇数还是偶数:");

    int number;
    
     number = inputNum.nextInt();
    
    //If statement for finding even or odd numbers
    if (number % 2 == 0) {
        System.out.println(number + " is an even number.");
    } else {
        
        System.out.println(number + " is an odd number.");
    }
    
    // letter grade
    System.out.println("Determine Letter Grade: ");
    
    if(number>=100 && number<90) {
        System.out.print("A");
        
    } 
    
    else if(number>=89 && number<80)
    {
       System.out.print("B");
       
    } 
    else if(number>=79 && number<70)
        
    {
        System.out.print("C");
        
    } 
    else if (number>69 && number<60)
        
    {
        System.out.print("D");
    }
    else  {
        System.out.println("F");
    }

【问题讨论】:

  • 您的所有条件(对于范围)都是不可能的。例如,同一数字不能大于或等于 100小于 90。
  • 你真的确定number 包含什么吗?使用调试器,或者如果必须,将number 的值记录到控制台。也许这不是你所期望的。
  • @JonSkeet - 第一个不是 - 我认为 OP 无法通过第一个条件。
  • @RandyCasburn:啊,抱歉 - 是的,我认为这实际上是关于 second else 语句,它确实总是会被打印出来。我已经澄清了我的第一条评论。

标签: java


【解决方案1】:

检查您的 。你把它们都颠倒了。 您编写它的方式是,没有一个输入值会通过任何这些检查。

你的意思可能是:

if(number<=100 && number>90) {
    System.out.print("A");
} 
else if(number<=89 && number>80)
{
   System.out.print("B");
} 
else if(number<=79 && number>70)
{
    System.out.print("C");
} 
else if (number<=69 && number>60)   
{
    System.out.print("D");
}
else  {
    System.out.print("F");
}

【讨论】:

    【解决方案2】:

    If 条件始终为假。

    number>=100 && number<90
    

    这表示检查数字是否大于 100 且小于 90,这将始终导致错误。其他条件也一样。

    if(number <= 100 && number > 90) {
        System.out.print("A");
    }
    else if(number <= 89 && number > 80) {
       System.out.print("B");     
    } 
    else if(number <= 79 && number > 70) {
        System.out.print("C");
    } 
    else if (number <= 69 && number > 60) {
        System.out.print("D");
    }
    else {
        System.out.println("F");
    }
    

    【讨论】:

      【解决方案3】:

      你颠倒了你的条件,所以一切都是假的。避免在多个 if 语句中重复类似的条件会更简洁 - 并减少错误。如果更改逻辑以仅检查最高值,则可以删除所有 &amp;&amp;

      if(number>100) {
          System.out.print("The number is too high");
      } else if(number>90) {
          System.out.print("A");
      } else if(number>80) {
         System.out.print("B");
      } else if(number>70) {
          System.out.print("C");
      } else if (number>60) {
          System.out.print("D");
      } else if (number >= 0){
          System.out.print("F");
      } else {
          System.out.print("The number is too low");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        相关资源
        最近更新 更多