我试图让用户为三行中的每一行输入三个数字。然后分别将第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;
}
}
答案 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与整数进行比较吗?为什么不直接使用整数?