读取多个扫描仪输入

Joh*_*ohn 5 java java.util.scanner

我想要做的是有多个输入都有不同的变量.每个变量都是不同方程的一部分.我正在寻找一种方法来做到这一点,我想我有一个想法.我只是想知道这是否合法,如果可能有更好的方法来做到这一点.

import java.util.*;

public class Example{

public static void main(String args[]){

    Scanner dd = new Scanner(System.in);

    System.out.println("Enter number.");
    int a = dd.nextInt();
    System.out.println("Enter number.");
    int b = dd.nextInt();
    System.out.println("Enter number.");
    int c = dd.nextInt();
  }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*and 12

如果每个输入都询问相同的问题,您应该使用for循环和输入数组:

Scanner dd = new Scanner(System.in);
int[] vars = new int[3];

for(int i = 0; i < vars.length; i++) {
  System.out.println("Enter next var: ");
  vars[i] = dd.nextInt();
}
Run Code Online (Sandbox Code Playgroud)

或者如Chip建议的那样,您可以从一行解析输入:

Scanner in = new Scanner(System.in);
int[] vars = new int[3];

System.out.println("Enter "+vars.length+" vars: ");
for(int i = 0; i < vars.length; i++)
  vars[i] = in.nextInt();
Run Code Online (Sandbox Code Playgroud)

你走在正确的轨道上,你做了什么工作.这只是一种更好,更灵活的做事方式.

  • 不,`Scanner`是一个`Stream`.换句话说,它从源获取所有输入,并在您调用时发送最早的可用信息.所以`in.nextInt()`等待系统输入(键盘),然后返回下一个可用数据,作为`int`. (2认同)