Ede*_*ont 1 java if-statement boolean
我尝试过寻找,但没有在任何地方找到答案,而且我不知道问题出在哪里。
执行程序时, 的值为calc!=oddfalse,我什至让控制台打印它的值以确保紧接着 if 语句执行并向 main 返回 false
calc!=even使用不同大小的矩阵做同样的事情
我真的不知道问题出在哪里,希望有人能澄清一下,谢谢。
public class snake {
public static void main(String[] args) {
int[][] matrix = new int[5][7];
putNumbers(matrix);
printMatrix(matrix);
System.out.println("the matrix is snake? " + isSnake(matrix, matrix.length));
}
private static Boolean isSnake(int[][] matrix, int length) {
length--;
int calc,
odd = -1,
even = 1;
for (int i = 0; i < (matrix[length].length - 2); i++) {
calc = matrix[length][i] - matrix[length][i + 1];
if (length % 2 == 0) {
System.out.println(calc != odd); //value is false - prints
if (calc != odd); //executes anyway even when false
{
return false;
}
}
else {
System.out.println(calc != even);
if (calc != even); {
return false;
}
}
}
if (length == 0) return true;
return isSnake(matrix, length - 1);
}
private static void putNumbers(int[][] matrix) {
int n = 1;
for (int i = 0; i < matrix.length; i++) {
if (i % 2 == 0) {
for (int j = 0; j < matrix[i].length; j++, n++) {
matrix[i][j] = n;
}
} else {
for (int j = matrix[i].length - 1; j >= 0; j--, n++) {
matrix[i][j] = n;
}
}
}
}
private static void printMatrix(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++)
System.out.printf("%d\t", matrix[i][j]);
System.out.println();
}
System.out.println();
}
}
Run Code Online (Sandbox Code Playgroud)
if(length%2==0)
{
System.out.println(calc!=odd); //value is false - prints
if (calc!=odd); // <<-- NOTE THE SEMICOLON
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3205 次 |
| 最近记录: |