使用布尔方法确定输出

时间:2015-11-09 03:10:45

标签: java methods boolean

我试图让用户为三行中的每一行输入三个数字。然后分别将第1列,第2列和第3列的值相加。如果所有3列的值独立地加1,那么它应该使用布尔方法打印出“是”。我不知道如何让布尔方法工作,但这里的例子都不足以帮助我。对于我能做些什么来让它正常工作的任何想法?

import java.util.*;

public class MarkovMatrix {

    public static void main(String[] args) {
        //Initializing all arrays
        double[] FirstRow = new double[3];
        double[] SecRow = new double[3];
        double[] ThirdRow = new double[3];
        double[] ColSum = new double[3];
        Scanner input = new Scanner(System.in);

        //Getting input from user
        System.out.print("Enter first Row: ");
        for(int i = 0; i < FirstRow.length; i++){
            FirstRow[i] = input.nextDouble();
        }
        System.out.print("Enter Second Row: ");
        for(int j = 0; j < SecRow.length; j++){
            SecRow[j] = input.nextDouble();
        }
        System.out.print("Enter Third Row: ");
        for(int k = 0; k < ThirdRow.length; k++){
            ThirdRow[k] = input.nextDouble();
        }

        // Summing all columns
        ColSum[0] = FirstRow[0] + SecRow[0] + ThirdRow[0];
        ColSum[1] = FirstRow[1] + SecRow[1] + ThirdRow[1];
        ColSum[2] = FirstRow[2] + SecRow[2] + ThirdRow[2];

        boolean isMarkovMatrix; 

        if(isMarkovMatrix = true)
            System.out.println("Matrix is a Markov Matrix");
    }//End of main

    public static boolean isMarkovMatrix(ColSum double) {
        if(ColSum[0] = 1 && ColSum[1] = 1 && ColSum[2] = 1)
            return true;
    }
}

1 个答案:

答案 0 :(得分:0)

语句if(isMarkovMatrix = true)将始终评估为true,因为您要将true分配给isMarkovMatrix。相反,你应该这样做:

if(isMarkovMatrix == true)

甚至更好,只是

if(isMarkovMatrix)
isMarkovMatrix方法签名中

编辑,您需要先放置数据类型,然后放置变量。

此外,=赋值运算符==是您要在此方法中使用的正确比较运算符

public static boolean isMarkovMatrix(double[] ColSum) {
        if (ColSum[0] == 1 && ColSum[1] == 1 && ColSum[2] == 1)
            return true;
        return false;
    }

顺便说一下:你真的想要将double与整数进行比较吗?为什么不直接使用整数?