2017-05-04 77 views
-4

我正在創建此行的值設置爲10的程序,然後它將它添加到板類..稍後,用戶必須輸入一個值小於或等於總行數的平均值爲10,如果他輸入了錯誤的值,程序會要求他輸入正確的數字,但是10的平均值是5,我可以輸入0-5之間的數字而不會得到「請輸入正確的值」的消息,然而,當我嘗試這樣做,我的程序,它說5,4,3,2,1是不正確的號碼,只接受0 ..這是我的計劃無法獲得正確的輸出平均數

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

大概,當你做'董事會o =新董事會();',新董事會有'行'的'0'。 「新」牌不是您將行設置爲10的相同主板。 – khelwood

+0

@khelwood謝謝..有沒有辦法在方法中調用舊對象? –

+0

你把它傳入:'getRow(Scanner c,Board o)' – Nugenrules

回答

0

當你做

Board o= new Board(); 

裏面getRow,你正在製作一個新的板子(大概是)row爲零。這並不是說你在main構建並設置row至10

main通卡插入getRow,將其添加爲參數相同的電路板:

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

,並通過它,當你調用getRow在從main

col = getRow(src, b);