java - 我可以给 boolean 基元一个条件作为初始化吗?

标签 java while-loop boolean

我不确定这是否可能,因为我还没有找到确切的答案,但 NetBeans 没有给出错误。但如果可能的话,为什么我的代码不起作用?

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    int[][] fiveMatrix = {
        {1, 4, 7, 5, 3}, {3, 7, 9, 10, 1}, {4, -3, 2, -4, 1}, {5, 9, 6, 4, 3}, {1, 2, 3, 4, 5},};

    System.out.print("Which line do you want to write out (0-4)? ");
    int lineNumber = scan.nextInt();
    boolean goodLine = lineNumber < 0 || lineNumber > 4;
    if (goodLine) {
        while (goodLine) {
            System.out.println("Bad index.");
            System.out.print("Which line do you want to write out (0-4)? ");
            lineNumber = scan.nextInt();
        }
    }
}

}

最佳答案

这里:

boolean goodLine = lineNumber < 0 || lineNumber > 4;

计算一次,并将结果分配给该变量。

稍后对 lineNumber = scan.nextInt(); 进行更改,更改该 boolean 变量!

“正确”的解决方案:您必须重新计算 boolean 属性。但理想情况下不是通过复制代码,而是通过创建一个小的辅助方法:

boolean isGoodLine(int lineNumber) { return lineNumber < 0 || lineNumber > 4; }

现在,您只需在 lineNumber 更改时调用该方法即可,而不是在其他代码中使用 boolean 变量!

关于java - 我可以给 boolean 基元一个条件作为初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314987/

相关文章:

常见 UNIX 文件实用程序(如 ls、cat 等)的 Java 实现

java - Spring 安全 : two access denied pages/handlers depending on which resource was accessed

java - 每个带有问号光标的组件的上下文帮助

c - 为什么“while(!feof(file))”总是错误的?

python-3.x - Python 3.7 boolean 索引 *警告* 使用 'list'

android - 如何从数据库获取 boolean 值并将其添加到 TextView 中?

java - 获取在线文件的内容并将其分配给变量

java - while 循环不适用于两个 if 语句

c++ - While Loop 不会循环 C++

java - 数据无法解析为类型