首页 > 解决方案 > 当使用 while 循环输入负数时,停止接收 Arraylist 的用户输入

问题描述

我目前正在制作一个程序,它将用户输入添加到一个名为 score 的 arrayList 中,当输入一个负数时,它会从 while 循环中中断。

我目前正在尝试代码,但是我目前在 else-if 语句中遇到了布尔运算符的问题。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Lab03_Part_1 
{
    public static void main(String[] args) 
    {
        double sum;
        double avg;
        int i;
        boolean acceptableScore = true;
        List<Integer> score = new ArrayList<Integer>();
        Scanner scanner = new Scanner(System.in);
        
        while (acceptableScore) 
        {
                                                                                                                            
            if ((score >= 0) && (score <= 100)) 
            {
                System.out.println("Enter Student Score: ");
                score.add(scanner.nextInt());
            }
            else if (score > 100) 
            {
                System.out.println("that is not an acceptable Score");
            }
            else 
            {
                break;
            }
        }
    }
}

这是我得到的当前错误。

The operator >= is undefined for the argument type(s) List<Integer>, int
    The operator <= is undefined for the argument type(s) List<Integer>, int
    The operator > is undefined for the argument type(s) List<Integer>, int

根据我对此错误消息的理解,主要问题是我在创建 ArrayList 时使用了 Integer,但是 boolean 需要 int?我对编码很陌生,所以这个问题对我来说是新的领域。

我不是在找人为我编写代码,但我非常感谢有人能提供的任何帮助,谢谢。

标签: loopsarraylistwhile-loop

解决方案


问题

您直接将用户输入添加到 ArrayList。

你应该做什么:

将输入存储在变量中,对其进行检查并采取相应措施。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Lab03_Part_1 
{
    public static void main(String[] args) 
    {
        double sum;
        double avg;
        int s;
        boolean acceptableScore = true;
        List<Integer> score = new ArrayList<Integer>();
        Scanner scanner = new Scanner(System.in);
        
        while (acceptableScore) 
        {
            s = scanner.nextInt();
            if ((s >= 0) && (s <= 100)) 
            {
                System.out.println("Enter Student Score:");
                score.add(s);
            }
            else if (s > 100) 
            {
                System.out.println("that is not an acceptable Score");
            }
            else 
            {
                break;
            }
        }
        scanner.close();
    }
}

推荐阅读