2017-05-04 3 views
-4

Ich erstellen dieses Programm, das die Werte für Zeilen auf 10 festgelegt hat und dann fügt es es der Board-Klasse hinzu. Später muss der Benutzer einen Wert eingeben kleiner als oder gleich dem Durchschnitt der gesamten Reihen, die 10 ist, wenn er den falschen Wert eingibt, fordert das Programm ihn auf, richtiges jedoch einzugeben, Durchschnitt von 10 ist 5 und ich kann Zahl von zwischen 0-5 eingeben, ohne das "bitte zu erhalten korrekten Wert eingeben“angezeigt wird, aber wenn ich versuche, das mit meinem Programm zu tun, heißt es 5,4,3,2,1 falsche Zahlen sind und akzeptiert nur 0 .. Hier ist mein ProgrammKann nicht die richtige Ausgabe für die durchschnittliche Zahl

import java.util.Scanner; 


public class Calculate { 
    public static void main(String[] args) { 
     int co,row,col; 

     Board b= new Board(); 
     row=10; 
     b.setRow(row); 
     System.out.println("Enter number less than or equal to the averange of rows"); 
     Scanner src= new Scanner(System.in); 
     col=getRow(src); 
     System.out.println(col); 
    } 

    private static int getRow(Scanner c) { 
     int b=-1; 
     Board o= new Board(); 
     while(b<0 || b>o.getRow()/2) 
     { 
      System.out.println("Please enter correct row"); 
       b=c.nextInt(); 
     } 


     return b; 
    } 

} 
+2

Vermutlich, wenn Sie 'Vorstand o = new Vorstand tun();', das neue Board 'row' von '0' hat. Ein 'neues' Board ist nicht das gleiche Board, auf dem Sie die Zeile auf 10 gesetzt haben. – khelwood

+0

@khelwood thanks .. Tho gibt es eine Möglichkeit, das alte Objekt in der Methode aufzurufen? –

+0

Sie übergeben es: 'getRow (Scanner c, Board o)' – Nugenrules

Antwort

0

wenn Sie tun

Board o= new Board(); 

innerhalb getRow, machen Sie ein neues Board mit (vermutlich) row bei Null. Es ist nicht das gleiche Brett, das Sie in main konstruieren und setzen row bis 10.

an Karte von main in getRow geben, fügen Sie es als Argument:

private static int getRow(Scanner c, Board o) { 
    int b=-1; 
    while(b<0 || b>o.getRow()/2) { 
     System.out.println("Please enter correct row"); 
     b=c.nextInt(); 
    } 
    return b; 
} 

und geben es in, wenn Sie getRow nennen von main:

col = getRow(src, b); 
Verwandte Themen