2016-05-04 7 views
0

Ich habe einen Auftrag, und ich brauche eine Schleife zu verwenden, um einem Anwender zu ermöglichen, zehn verschiedene Zahlen in einem Programm einzugeben, das dann die Variablen addiert.Ändern der Eingangsvariablen in einem Java-loop

Ich habe verschiedene Teile des Codes und vernäht sie zusammen erstellen Diesen gefunden:


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


    } 
} 

Es ist nicht groß, aber es ist das Beste, was ich bisher. Bitte helfen Sie?

+0

Wurden verwenden Sie die varialbes num1 ... num10 ? Auch warum Sie sie verwenden, wenn Sie bereits ein Array erstellt haben, um die Eingaben zu speichern. – theVoid

Antwort

1

Sie benötigen die Variablen num1 bis num10 nicht. Sie können einfach in der Schleife selbst zusammenfassen. Wie:

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

Weiterhin haben Sie Ihre Variablen als Strings zugewiesen, aber Sie brauchen Int. In Ihrem Fall würde es etwas wie 1111111111 drucken, wenn die Eingabe immer eine 1 wäre.

Werfen Sie einen Blick here, wie Sie Integers richtig behandeln würden.

0

Sie können das auf zwei Arten erreichen, entweder innerhalb der Schleife selbst fügen Sie einfach die Nummer oder wenn Sie den Überblick behalten müssen für sie später nur zum Array hinzufügen.

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

Zunächst sollte Ihre Klasse in CamelCase sein. Der erste Buchstabe steht immer in Großbuchstaben.

Zweitens brauchen Sie kein Array, um diese Nummern zu speichern.

Drittens sollten Sie eine globale Variable, die Sie mit Leichtigkeit ändern kann. Das ist eine gute Übung.

und Sie sollten immer in der Nähe Stream-Objekte wie Scanner, weil sie ein Speicherleck.

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

So ist die einfachste Antwort, die ich gefunden ist:

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

auf diese Weise versuche ich erst wieder bearbeiten Code:

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