在 java 循环中更改输入变量

Changing input variables in a java loop

我有一个作业,我需要使用循环让用户在程序中输入十个不同的数字,然后将变量相加。

我找到了各种代码并将它们拼接在一起创建了这个:


import javax.swing.*;
import java.util.Scanner;

public class exercise6
{
   public static void main (String []args)
   {

     //Input

      String totalNum, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10;

       Scanner in = new Scanner (System.in);
       System.out.println("Please enter ten numbers:");
       int[] inputs = new int[10];

       for (int i = 0; i < inputs.length; ++i)
         {
            inputs[i] = in.next();
         }

      //Process
      totalNum = num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10;

      //Output
      JOptionPane.showMessageDialog(null, "Total = " + totalNum);


   }
}

它不是很好,但它是我迄今为止最好的。请帮忙?

您不需要变量 num1 到 num10。您可以简单地在循环本身中进行总结。喜欢:

int sum = 0;
for (int i = 0; i < 10; i++) {
    sum += = in.next(); // sum = sum + in.next();
}

此外,您将变量分配为字符串,但您需要 int。在您的情况下,如果输入始终为 1,它将打印类似 1111111111 的内容。

看看here您将如何正确处理整数。

您可以通过两种方式实现这一点,要么在循环本身内添加数字,要么如果您需要跟踪它们以备后用,只需将它们添加到数组中即可。

导入javax.swing.*; 导入 java.util.Scanner;

public class exercise6
{
   public static void main (String []args)
   {

      String total;

       Scanner in = new Scanner (System.in);
       int numOfInputValues = 10;
       System.out.println("Please enter ten numbers:");
       int[] inputs = new int[numOfInputValues];

       for (int i = 0; i < numOfInputValues; ++i)
         {
            // Append to array only if you need to keep track of input
            inputs[i] = in.next();
            // Parses to integer
            total += in.nextInt();
         }

      //Output
      JOptionPane.showMessageDialog(null, "Total = " + totalNum);
   }
}

首先,您的 class 应该采用 CamelCase。第一个字母总是大写。

其次,您不需要数组来保存这些数字。

第三,你应该创建一个可以轻松更改的全局变量。这是一个很好的做法。

并且您应该始终关闭像 Scanner 这样的流对象,因为它们会泄漏内存。

import java.util.Scanner;

public class Exercise6 {
public static void main(String[] args) {

    int numberQuantity = 10;

    int totalNum = 0;

    Scanner in = new Scanner(System.in);
    System.out.println("Please enter ten numbers:");

    for (int i = 0; i <= numberQuantity; i++) {

        totalNum += in.nextInt();

    }
    in.close();
    System.out.println(totalNum);

    }
}

所以我找到的最简单的答案是:

import javax.swing.*;
import java.util.Scanner;

public class exercise6
{
   public static void main (String []args)
   {

     //Input

      int totalNum, num1;
      totalNum = 0;

         for (int numbers = 1 /*declare*/; numbers <= 10/*initialise*/; numbers ++/*increment*/)
         { 
                 num1 = Integer.parseInt(JOptionPane.showInputDialog("Input any number:"));
                 totalNum = totalNum + num1;
         }


//Output
      JOptionPane.showMessageDialog(null, "Total = " + totalNum);

试试这个方法我只重新编辑你的代码:

import javax.swing.*;

public class InputNums {

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

        for (int i = 0, n = 0; i < 10;) {
            boolean flag = false;

            try {
                n = Integer.parseInt(JOptionPane
                        .showInputDialog("Input any number:"));
            } catch (NumberFormatException nfe) {
                flag = true;
            }
            if (flag) {
                flag = false;
                JOptionPane.showMessageDialog(null,
                        "Invalid no Entered\nEnter Again...");
                continue;
            }
            total += n;
            i++;
        }

        JOptionPane.showMessageDialog(null, "Total = " + total);
    }
}