gpt4 book ai didi

java - Java中的 boolean 值赋值

转载 作者:行者123 更新时间:2023-11-30 06:26:15 25 4
gpt4 key购买 nike

对于这个完全菜鸟的问题表示歉意,但是谁能解释一下在以下方法中 for-each 循环完成后 match 的值发生了什么?

尝试编译会产生警告:变量匹配可能尚未初始化

public void listMatching(String searchString) {
boolean match;

for(String filename : files) {
if(filename.contains(searchString)) {
System.out.println(filename);
match = true;
}
else {
match = false;
}
}

if(match == false) {
System.out.println("No matches found for " + searchString);
}
}

最佳答案

这是一个可以满足您要求的修复程序:

public void listMatching(String searchString) {
boolean match = false; // initialize local variable
for(String filename : files) {
if(filename.contains(searchString)) {
System.out.println(filename);
match = true;
}
}
if(!match) { // same as 'match == false', just without comparison
System.out.println("No matches found for " + searchString);
}
}

必须初始化局部变量。只有字段会获得其类型的默认值。

如果在 else block 中将 match 重新分配给 false ,则在循环后它将是 false ,即使每个 filename 都包含 searchString 除了最后一个。

关于java - Java中的 boolean 值赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com