繁体   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