在java循环中更改输入变量

时间:2016-05-04 10:06:37

标签: java for-loop math addition

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

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

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);


   }
}

它并不好,但它是迄今为止我所拥有的最好的。请帮帮忙?

5 个答案:

答案 0 :(得分:1)

您不需要变量num1到num10。你可以简单地总结一下循环本身。像:

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

此外,您将变量指定为字符串,但您需要int。在你的情况下,如果输入始终是1,它将打印类似1111111111的东西。

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

答案 1 :(得分:0)

您可以通过两种方式实现这一目标,无论是在循环内部,只需添加数字,或者如果您需要跟踪它们以便稍后将它们添加到数组中。

import javax.swing。*; import 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);
   }
}

答案 2 :(得分:0)

首先,你的课应该在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);

    }
}

答案 3 :(得分:0)

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

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);

答案 4 :(得分:0)

尝试这种方式我只会重新编辑您的代码:

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);
    }
}