2016-05-04 2 views
0

У меня есть назначение, и мне нужно использовать цикл, чтобы пользователь мог ввести десять разных чисел в программу, которая затем добавляет переменные.Изменение входных переменных в цикле java

Я нашел различные фрагменты кода и скреплены их вместе, чтобы создать это:


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


    } 
} 

Это не большой, но это лучшее, что я до сих пор. Пожалуйста помоги?

+0

Были ли вы использовать varialbes num1 ... num10 ? Также зачем использовать их, когда вы уже создали массив для хранения входов. – theVoid

ответ

1

Вам не нужны переменные num1 и num10. Вы можете просто подвести итог в самом цикле. Например:

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

Кроме того, вы назначили свои переменные как строки, но вам нужно int. В вашем случае это напечатает что-то вроде 1111111111, если вход всегда будет 1.

Посмотрите here, как бы вы правильно обращались с целыми.

0

Вы можете достичь этого двумя способами: либо внутри цикла, либо просто добавьте его, либо если вам нужно отслеживать их, а затем просто добавить их в массив.

импорт 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); 
    } 
} 
0

Прежде всего, ваш класс должен быть в CamelCase. Первая буква всегда находится в заглавной букве.

Во-вторых, вам не нужен массив для сохранения этих чисел.

В-третьих, вы должны сделать глобальную переменную, которую вы можете легко изменить. Это хорошая практика.

И вы должны всегда закрывать объекты потока, такие как сканер, потому что они утечки памяти.

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

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