无法获得平均数的正确输出

时间:2017-05-04 22:28:09

标签: java

我正在创建这个程序,其行的值设置为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;
    }

}

1 个答案:

答案 0 :(得分: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);