【问题标题】:Java - Using array and and for loop to calculate the grades that the user passed or failed gradesJava - 使用数组和 for 循环来计算用户通过或不及格的成绩
【发布时间】:2022-10-13 17:11:20
【问题描述】:

我希望能够使用数组 for 循环和 if else 语句来计算用户的成绩,但我的工作结果总是打印失败的成绩,即使成绩是 90 我感谢你们的帮助谢谢

 import java.util.Scanner;

 public class ArrayInputGrade {

 public static void main(String[] args) {
    // TODO code application logic here
    
    Scanner input = new Scanner(System.in);
    
    //allow user  input;
    System.out.println("How many grades you want to enter?");
    int num = input.nextInt();

    int array[] = new int[num];

    System.out.println("Enter the " + num + " numbers now.");

    for (int grade = 0; grade < array.length; grade++) {
        array[grade] = input.nextInt();
        
            if(grade <= 100 && grade >= 90){
        System.out.println("Excellent: Grade A");
    }else if(grade <= 90 && grade >= 80){
        System.out.println("Very Good: Grade B");
    }else if(grade <= 80 && grade >= 70){
        System.out.println("Good: Grade C");
    }else if(grade <= 70 && grade >= 60){
        System.out.println("Satisfactory: Grade D");
    }else if(grade <= 60 && grade >= 50){
        System.out.println("Work Hard: Grade E");
    }else if(grade <= 50 && grade >= 40){
        System.out.println("Just Passed: Grade F");
    }else {
        System.out.println("Failed!");
    }
            
}
    
}}

【问题讨论】:

  • 您忘记在帖子中添加实际问题。你能澄清一下你需要帮助吗?
  • 查看 for (int grade = 0; grade &lt; array.length; grade++)if(grade &lt;= 100 &amp;&amp; grade &gt;= 90) - 在 for 循环中,您将 grade 定义为索引,在 if 块中,您将其用作值,但这是行不通的。你可能想使用类似for(int index = 0; ...) { int grade = input.nextInt(); array[index] = grade; if(grade ...) ...}
  • 谢谢你们的帮助我真的很感激

标签: java arrays for-loop if-statement


【解决方案1】:
package com.alpian.imm.backend;

import java.util.Random;
import java.util.Scanner;
import java.util.stream.IntStream;

public class ArrayInputGrade {
    public static void main(String[] args) {
        // TODO code application logic here

        Scanner input = new Scanner(System.in);

        //allow user  input;
        System.out.println("How many grades you want to enter?");
        int num = input.nextInt();
        // Simulate logic
        Random random = new Random();
        int[] array = IntStream.range(0, num).map(v -> random.nextInt(101)).toArray();


        for (int grade : array) {
            if (grade <= 100 && grade >= 90) {
                System.out.println("Excellent: Grade A");
            } else if (grade <= 90 && grade >= 80) {
                System.out.println("Very Good: Grade B");
            } else if (grade <= 80 && grade >= 70) {
                System.out.println("Good: Grade C");
            } else if (grade <= 70 && grade >= 60) {
                System.out.println("Satisfactory: Grade D");
            } else if (grade <= 60 && grade >= 50) {
                System.out.println("Work Hard: Grade E");
            } else if (grade <= 50 && grade >= 40) {
                System.out.println("Just Passed: Grade F");
            } else {
                System.out.println("Failed!");
            }

        }

    }
}

输出:

How many grades you want to enter?
5
Failed!
Just Passed: Grade F
Good: Grade C
Excellent: Grade A
Just Passed: Grade F

Process finished with exit code 0

【讨论】:

  • 最好能展示并解释您所做的更改、更改的原因以及更改的影响。
【解决方案2】:
public class UserGrade{

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    System.out.println("How many grades you want to enter?");
    int num = input.nextInt();

    int array[] = new int[num];

    System.out.println("Enter the " + num + " numbers now.");

    for (int i = 0; i < array.length; i++)
    {

        int grade = input.nextInt();
        array[i] = grade;

        if (grade <= 100 && grade >= 90)
        {
            System.out.println("Excellent: Grade A");
        }
        else if (grade <= 90 && grade >= 80)
        {
            System.out.println("Very Good: Grade B");
        } 
        else if (grade <= 80 && grade >= 70)
        {
            System.out.println("Good: Grade C");
        }
        else if (grade <= 70 && grade >= 60)
        {
            System.out.println("Satisfactory: Grade D");
        }
        else if (grade <= 60 && grade >= 50)
        {
            System.out.println("Work Hard: Grade E");
        }
        else if (grade <= 50 && grade >= 40)
        {
            System.out.println("Just Passed: Grade F");
        }
        else
        {
            System.out.println("Failed!");
        }
    }
}

}

【讨论】:

  • 最好能展示并解释您所做的更改、更改的原因以及更改的影响。
【解决方案3】:

罪魁祸首是for循环,

for (int Grade = 0;grade < array.length;grade++) {

}

因为您正在检查循环变量'年级' 在 if 条件下。

修改循环如下,

for (int i = 0; i < array.length; i++) {

int 等级 = input.nextInt();

数组[i] = 等级;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 2015-01-19
    • 2014-04-27
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多