簡體   English   中英

如何創建一個程序,讓用戶決定掃描儀輸入的數量,然后將掃描儀分為正數和負數的 arrays?

[英]How to create a program that allows user to decide the number of Scanner input and then divides Scanners into arrays of positive and negative numbers?

package nizovi;

import java.util.Scanner;

public class Nizovi {

private static String array;


public static void main(String[] args) {
    Scanner sc= new Scanner (System.in);
    int k = sc.nextInt();
    int[] pos =new int[k];
    int[] neg = new int [k];
    Scanner n= new Scanner (System.in);
    System.out.println("Enter the number of members of array:");
    int members = n.nextInt();
    for (int i=k;i>0;){
         Scanner numb= new Scanner (System.in);
          System.out.println("Enter number:");
          int num=numb.nextInt();
          if (broj >=0){
              pos[num]=n.nextInt();

          }
          else{
              neg[num]=n.nextInt();


          }
    }
}
}

我正在使用 for 循環,我很困惑如何在其中添加更多數字,因為如果我將數組命令留在 for 循環中,它每次都會使用不同的掃描儀定義它。抱歉,解釋不好。

第一:每個輸入源使用一個Scanner ,所以這里只有一個而不是 3

然后,你需要一步一步來,你做了很多無用的事情

  • 問你要輸入的數字個數k
  • 創建 arrays
  • 要求用戶輸入k次值
  • 從值插入到另一個數組中

但是你的數組中會有零,因為你創建了 2 個大小為k的 arrays 但只輸入了k個元素,所以你的 arrays 中總共有k個零,使用List來只擁有你需要的東西

Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of members of array:");
int k = scanner.nextInt();

int[] pos = new int[k];
int[] neg = new int[k];

for (int i = 0; i < k; i++) {
    System.out.println("Enter a number:");
    int numberUser = scanner.nextInt();
    if (numberUser > 0) {
        pos[i] = numberUser;
    } else {
        neg[i] = numberUser;
    }
}
System.out.println(Arrays.toString(pos));
System.out.println(Arrays.toString(neg));

Scanner numb=新的Scanner (System.in);

那種說法……根本沒用。

您已經定義了一次有效的掃描儀,更進一步,命名為n

你只應該:

  • 使用更有意義的名稱,例如scannerForUserInput而不是n
  • 然后,每當您想從 uer 讀取數據時,就使用實例。

根本不需要為每個新的輸入數據定義一個新的掃描儀。

暫無
暫無

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

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