簡體   English   中英

ArrayList掃描儀輸入幫助Java

[英]ArrayList Scanner input help Java

我正在嘗試編寫代碼,在其中對給定的數字列表進行排序,並且我正在嘗試使用ArrayList進行排序。 我正在使用while循環,以允許重復輸入。 這是我的代碼:

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

public class sortinggg {

    public static Scanner keyboard = new Scanner(System.in);
    public static ArrayList<Integer> number = new ArrayList<Integer>();

    public static void main (String [] args) {

        int count= 0;

        System.out.println("Enter your numbers.");

        while (keyboard.hasNextInt()); {
            number.add(keyboard.nextInt()); 
        }

整數計數現在無關緊要,因為我僅在對列表進行排序時使用它。

問題在於,即使輸入了字符串(例如),輸入數字后,程序也不會繼續執行下一行代碼。 我在這里想念什么嗎?

附言:我厭倦了查找以前在該主題上曾經提出過的問題,但是建議的解決方案都不適合我。謝謝您的幫助!

嘗試這個:

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

public class Main
{
    public static void main(String args[])
    {
        Scanner keyboard = new Scanner(System.in);
        ArrayList<Integer> number = new ArrayList<Integer>();

        System.out.println("Enter your numbers:");

        while (keyboard.hasNextInt()) {
            number.add(keyboard.nextInt()); 
        }
    }
} 

修改內容:

  1. while (keyboard.hasNextInt()); 最后刪除semicolon(;)

在這里, while loop將繼續向arraylist添加值,直到您提供int值為止。

首先; 剛過while是錯誤的。 它不允許您執行身體。 然后,您將如何跳過循環。 您可以要求最終用戶輸入一些特殊值並使用它來打破循環。 更正的版本如下。

public static void main(String[] args) {
        int count = 0;

        System.out.println("Enter your numbers or -1 to skip.");

        while (keyboard.hasNextInt()) {
            int num = keyboard.nextInt();
            if (num == -1) {
                break;
            }
            number.add(num);

        }

        System.out.println(number);

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM