gpt4 book ai didi

java - 双for循环中的死代码

转载 作者:行者123 更新时间:2023-11-29 03:29:30 24 4
gpt4 key购买 nike

我最近开始使用 Java 编写代码,遇到了这个死代码问题。我一直在 Stack Overflow 上查看其他问题(和答案),但我还没有找到解决方案。希望你能帮忙。问题出现在t++

public static boolean constraint2(int [][] xmatrix, int [][] ymatrix){
for(int l = 0; l < xmatrix.length; l++){
for(int t = 0; t < xmatrix[0].length; t++){ // DEAD CODE at "t++"
if(b[t]*xmatrix[l][t] > ymatrix[l][t]){
return false;
}
else{
return true;
}
}

}
return false;
}

最佳答案

表示这条语句永远不会执行。此循环的第一次迭代将退出方法并中断循环。所以这段代码等同于:

for(int l = 0; l < xmatrix.length; l++){
if(xmatrix[0].length>0) {
if(b[0]*xmatrix[l][0] > ymatrix[l][0]){
return false;
}
else{
return true;
}
}
}

t++真的没有意义。

“死代码”通常只是一个警告,不会阻止您编译您的应用。

此外,您的意思可能是 t < xmatrix[l].length在循环条件下。

更新:您没有在问题正文中提及它,但据我从您对另一个答案的评论中了解到,您需要检查矩阵中每个元素的约束是否成立.要实现它,您只需检查约束是否失败:

public static boolean constraint2(int [][] xmatrix, int [][] ymatrix){

for(int l = 0; l < xmatrix.length; l++){
for(int t = 0; t < xmatrix[l].length; t++){
if(b[t]*xmatrix[l][t] > ymatrix[l][t]) {
//constraint failed
return false;
}
}
}
//constraint holds for all elements
return true;
}

关于java - 双for循环中的死代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19087928/

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