2017-09-16 3 views
-2

Ich habe Programm hier geschrieben, um einen Benutzer für 3 ganze Zahlen zu fragen, vergleichen Sie sie und finden Sie heraus, welche die größte mittlere und kleinste ist, dass Teil gut funktioniert. Mein Problem ist, wenn Sie sich meine erste if-Anweisung ansehen, die ich versuche, diese Werte jeweils in eine Variable im Speicher zu speichern, bekomme ich Variablen nicht initialisierte Fehler. Jede Hilfe wäre großartig! Ich möchte diese Werte im Grunde behalten, um weiter Code schreiben zu können, um sie zu vergleichen und herauszufinden, ob sie ein Dreieck erzeugen oder nicht.Kompilieren Error-Variable nicht initialisiert

import java.util.Scanner; 
    public class TriangleProgram 
    { 
     public static void main(String [] args) 
     { 
      Scanner input = new Scanner(System.in); 

      int x; 
      System.out.print("Enter X: "); 
      x = input.nextInt(); 

      int y; 
      System.out.print("Enter Y: "); 
      y = input.nextInt(); 

      int z; 
      System.out.print("Enter Z: "); 
      z = input.nextInt(); 

      System.out.println(); 

      int largest; 
      int middle; 
      int smallest; 


      if(x > y && x > z && y > z) 
      { 
      System.out.println("Largeset Number: " + x); 
      System.out.println("Middle Number: " + y); 
      System.out.println("Smallest Number: " + z); 

      x = largest; 
      y = middle; 
      z = smallest; 

      } 

      else if(x > y && x > z && z > y) 
      { 
      System.out.println("Largeset Number: " + x); 
      System.out.println("Middle Number: " + z); 
      System.out.println("Smallest Number: " + y); 
      } 

      else if(y > x && y > z && x > z) 
      { 
      System.out.println("Largeset Number: " + y); 
      System.out.println("Middle Number: " + x); 
      System.out.println("Smallest Number: " + z); 
      } 

      else if(y > x && y > z && z > x) 
      { 
      System.out.println("Largeset Number: " + y); 
      System.out.println("Middle Number: " + z); 
      System.out.println("Smallest Number: " + x); 
      } 

      else if(z > x && z > y && x > y) 
      { 
      System.out.println("Largeset Number: " + z); 
      System.out.println("Middle Number: " + x); 
      System.out.println("Smallest Number: " + y); 
      } 

      else 
      { 
      System.out.println("Largeset Number: " + z); 
      System.out.println("Middle Number: " + y); 
      System.out.println("Smallest Number: " + x); 
      } 


     } 
    } 
+2

Ich glaube nicht, Sie wollen 'x = größte; y = Mitte; z = kleinste; '. Es scheint eher so, als ob du 'lost = x; Mitte = y; smalles = z; ' – acdcjunior

Antwort

2

Flip die Zuordnungen. Sie sind rückwärts.

largest = x; 
middle = y; 
smallest = z; 
1

Die if Teil möchten Sie

Largest = x; 
Middle = y ; 
smallest = z; 
2

In

  x = largest; 
     y = middle; 
     z = smallest; 

Sie zuweisen den Wert der größten tun, um x (die Sie nicht etwas zu vergeben haben) (und ebenso für Mitte zu y und kleinste bis z). Aus diesem Grund erhalten Sie eine Variable, die nicht initialisiert wurde, und es ist wahrscheinlich nicht das, was Sie tun möchten. Versuchen:

  largest = x; 
     middle = y; 
     smallest = z; 
Verwandte Themen