【发布时间】:2021-11-22 19:18:42
【问题描述】:
我正在研究一个涉及 for-loop 和 if-else 语句的 java 函数。我需要根据多次迭代中的条件更改标志变量的值。我声明了一个名为 flag 的变量,并希望根据每次迭代中的条件进行更改。而且我需要在每次迭代结束时打印标志变量的值。但是,当我打印变量时,它显示变量未初始化的错误。如果我给它一个初始值,它会一直打印初始值,而不是在 if-else 语句中操作的值。我无法根据我的要求在 for 循环中初始化标志变量。以下是我的代码:
int flag;
for(int i=0; i< fileOneLines.length; i++){
diffs = diffMatchPatch.diffMain(fileOneLines[i],fileTwoLines[i]);
diffMatchPatch.diffCleanupSemantic(diffs);
for (DiffMatchPatch.Diff aDiff : diffs) {
if(aDiff.operation.equals(DiffMatchPatch.Operation.INSERT)){
flag = 1;
}
else if(aDiff.operation.equals(DiffMatchPatch.Operation.DELETE)){
flag = 2;
}
else if(aDiff.operation.equals(DiffMatchPatch.Operation.EQUAL)) {
flag = 0;
}
}
System.out.println(flag);
}
这是显示的错误:
java: variable flag might not have been initialized
【问题讨论】:
-
如果您的所有
if-else if都不满意怎么办? flag 应该保持什么值?所以你需要初始化flag局部变量。将其初始化为某个默认值有什么问题?
标签: java for-loop if-statement