java - 如何根据用户输入在循环中声明无限变量?

标签 java eclipse

我正在 eclipse 中构建一个程序,我想创建一个循环,其中根据用户输入声明变量。 例如,第一个输入存储在 a1 中,下一个输入存储在 a2 中,下一个输入存储在 a3 中,依此类推,直到用户键入数字以外的任何内容 input.hasNextDouble()

我尝试使用 while 循环和带有 if/else 语句的 Scanner 类来执行此操作。但是想不通。任何帮助将不胜感激。

最佳答案

你可以使用 HashMap :

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    Map<String, Double> inputs = new HashMap<String, Double>();

    boolean isNumber = true;
    int count = 1;
    while(isNumber) {
      System.out.printf("Please enter a%d:", count);
      if(scanner.hasNextDouble()) {
        inputs.put("a" + count,  scanner.nextDouble());
        count++;
      } else {
        isNumber = false;
      } 
    }

    System.out.println("Inputs: " + inputs);

    // Auxiliary code for question in comments below
    double sum = 0.0f;
    for (double d : inputs.values()) {
      sum += d;
    }

    System.out.println("Sum: " + sum);

    for (Map.Entry<String, Double> entry : inputs.entrySet()) {
      System.out.println("Sum - " + entry.getKey() + " = " + (sum  - entry.getValue()));
    }
  }
}

示例用法:

Please enter a1: 5.5
Please enter a2: 6
Please enter a3: 7.2
Please enter a4: x
Inputs: {a1=5.5, a2=6.0, a3=7.2}
Sum: 18.7
Sum - a1 = 13.2
Sum - a2 = 12.7
Sum - a3 = 11.5

关于java - 如何根据用户输入在循环中声明无限变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51115999/

相关文章:

java - Opengl 对象翻译

请求焦点后,JavaFX 2 在表格 View 中设置插入符号位置编辑 TextField

java - 无法从 base64 字符串中获取完整的图像质量

java - 需要帮助来理解 JUnit RunListener

java - Thread.sleep 是否可以减少读取和保存大文件时的内存问题

java - Eclipse 内容辅助错误

java - Android 媒体播放器 OncompletionListener 播放下一首歌曲但不播放第二首歌曲

java - 将 Eclipse 项目导入 Android Studio : Google Maps API

java - 如何在android eclipse中使用单击按钮实现多个操作?

java - 如何使用命令提示符使用 tomcat 调试 Web 项目