2017-10-09 12 views
2

Ich bin neu in Java und arbeite an einem Programm für meinen College-Kurs. Seltsamerweise fühle ich, dass mein Professor etwas falsch macht, oder vielleicht verstehe ich es nicht richtig. Ich habe einige Skripte und Dinge in der Vergangenheit codiert, aber ich bin nicht so toll und codiere Anwendungen. Ich neige mehr dazu, Code zu verwenden, um einige Dinge zu automatisieren. Irgendwelche Arten, die er uns den Code unten gab und uns bittet, 20 Eingaben des BMI der Völker zu berechnen. Ich habe das Gefühl, dass der Code, den er uns gegeben hat, nicht funktioniert oder mir irgendwo in der Array-Schleife, die er eingerichtet hat, ein Schritt fehlt? Ich kopierte seinen Code, wie er uns auch sagte, ich soll das verwenden, um dann eine Jtext GUI zu machen, aber nicht sicher, dass sein Code richtig funktioniert. Ich habe versucht, Ergebnisse zu drucken, die ich in das Array eingegeben habe, aber ich tue es nicht Bekomme nichts zurück.Ein Array von Benutzereingaben anzeigen

Vielen Dank für die Hilfe

enter code here 
package bmi; 


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

public class Bmi { 


public static void main(String[] args) { 
    final int size = 20 ; 
    String [] name = new String[size]; 
    double [] weight = new double[size]; 
    double [] height = new double[size]; 
    double [] BMI = new double[size]; 
    String Userquit ; 
    final double BMIUnder = 18.5; 
    final double BMINormal = 25.0; 
    final double BMIOver = 30.0; 
    final double BMIObese = 30.0; 

    int normalWeight = 0; 
    int overWeight = 0 ; 
    int obese = 0; 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("This program calculats BMI for 20 people"); 
    System.out.println("Please enter name, weight and height for everyone 
    firstI"); 

    int person = 0; 
    while(person < size) 
    { 
     System.out.println("Enter name"); 
      name[person] = keyboard.nextLine(); 

     System.out.println("Enter weight in pounds"); 
      weight[person] = keyboard.nextDouble(); 

     System.out.println("Ener height in inches"); 
      height[person] = keyboard.nextDouble(); 

     BMI[person] = (weight[person]*703/height[person]*height[person]); 

     System.out.println("Enter Y to continue or enter anything else 
     quit"); 
      Userquit = keyboard.next(); 

     if(Userquit.equals("Y")){ 
      person++; 
     }else 
      break; 
     } 

     int i = 0; 
     while(i < size){ 
      if (BMI[person] <= BMINormal) 
        { 
         normalWeight++; 
        }else if (BMI[person] <= BMIOver) 
           { 
            overWeight++; 
         }else 
            obese++; 

           } 
        } 

     } 
+0

_ "Warum funktioniert dieser Code nicht?" _ Art von Fragen wird als [off-topic] (https://stackoverflow.com/help/on-topic) betrachtet. – domsson

Antwort

1
while(i < size){ 
     if (BMI[person] <= BMINormal) 
       { 
        normalWeight++; 
       }else if (BMI[person] <= BMIOver) 
          { 
           overWeight++; 
        }else 
           obese++; 

          } 
       } 

    } 

Dieser Teil des Codes ist seltsam. Es gibt keine 'i' variable Inkrementierung, so dass diese Schleife niemals enden wird. Übrigens macht der Vergleich von BMI [Person], wo die Person bereits inkrementiert ist, keinen Sinn, weil sie leer ist. BMI [person-1] macht Sinn, weil es Daten für die Person speichert, die zuletzt Daten eingegeben hat. Für mich hast du Recht, Code ist falsch.

0

Sie haben eine unendliche Schleife am Ende:

int i = 0; 
    while(i < size){ 
     if (BMI[person] <= BMINormal) 
     { 
      normalWeight++; 
     }else if (BMI[person] <= BMIOver) 
     { 
      overWeight++; 
     }else 
      obese++; 
    } 

i ist immer 0 und nie erhöht, so dass Sie in der while-Schleife stecken.

0

Ran diesen Code auf Eclipse, ich eine Sache sah, dass muss repariert werden:

Auf der zweiten while-Schleife können Sie sehen, dass die Bedingung while(i<size) ist, aber ich bin nie in dieser Schleife verwendet, was Sie tatsächlich Sie wollen durch den BMI-Array mit der Person variabel ausgeführt - die in dieser Schleife als Array-Index verwendet wird, so dass anstelle von

int i = 0; 

Sie sollten Person initialisieren:

person = 0; 

dann, am unteren Rand der while-Schleife, erhöhen sie von einem

person++; 

Hoffe, es & viel Glück hilft!

Verwandte Themen