Java 如何使for循环在到达数组末尾之前不显示消息
如何使for循环no显示消息,直到消息到达数组末尾。代码如下:Java 如何使for循环在到达数组末尾之前不显示消息,java,arrays,for-loop,Java,Arrays,For Loop,如何使for循环no显示消息,直到消息到达数组末尾。代码如下: for (int j = 0; j < logic.rez.length; j++) { if (logic.rez[j] >= 20000000 && logic.rez[j] < 23000000) { do.this; break; } else { if(logic.rez.length==j){ rez
for (int j = 0; j < logic.rez.length; j++) {
if (logic.rez[j] >= 20000000 && logic.rez[j] < 23000000) {
do.this;
break;
} else {
if(logic.rez.length==j){
rez.append("Error message \n");
}
}
break;
for(int j=0;j=20000000&&logic.rez[j]<23000000){
这样做;
打破
}否则{
if(logic.rez.length==j){
追加(“错误消息\n”);
}
}
打破
我尝试在循环之前将布尔matchFound设置为false,如果发现了什么,则将其设置为true,如果在循环之后为false但没有运气,则打印错误消息。我需要一些条件,只有在循环结束数组后才会更改。rez.length==j将永远不会发生,因为您的循环只进行
length-1
(这就是小于符号的工作原理)。我想你可以通过这样做来解决它
logic.rez.length-1==j
根据您的逻辑,当j的值等于logic.rez.length时,for循环结束
j < logic.rez.length
如果要捕获循环到达数组末尾的条件,可以-
1) 在for循环外声明变量j,并在for循环后使用上面的代码块尽管可以在循环内检查是否已到达最后一个元素,但这并不理想。这种方法意味着每次通过循环时都要检查是否在最后一个元素上 有一种更好的方法。当控制传递给循环后面的代码时,您知道您已经到达了循环的末尾。当放置在循环之后时,您最多需要一次失败检查 对于线性搜索,有一些重复出现的模式,包括以下内容 找到匹配项时提前返回
int search( Foo[] f ) {
for ( int i = 0; i < f.length; ++i ) {
if ( matches( f[i] )) {
return i;
}
}
return -1; // Nothing matched. Caller handles error.
}
int搜索(Foo[]f){
对于(int i=0;i
带有布尔值的内联代码
boolean foundMatch = false;
for ( int i = 0; i < f.length; ++i ) {
if ( matches( f[i] )) {
foundMatch = true;
// Handle match
break;
}
}
if ( ! foundMatch ) {
// Nothing matched. Handle error here.
}
boolean foundMatch=false;
对于(int i=0;i
为什么不在循环后打印?for(int j=0;j
虽然这是事实,但更好的方法是在循环后处理错误。我知道,但解释为什么它不起作用要比通过优化来解决它好。使用良好的线性搜索模式与其说是优化,不如说是避免伪化。虽然在示例代码中解决技术错误是合理的,但它指出反模式并提出备选方案可能会有所帮助,正如上一段中的OP所提到的。但当我在数组中找到需要查找值的内容时,我不需要结束循环,如果我没有找到,则打印错误message@Mapet-示例代码中的中断将导致循环结束第一个time找到一个匹配项。如果要找到所有匹配项,请在示例代码和上面的第二个模式中,在循环中省去break
。
boolean foundMatch = false;
for ( int i = 0; i < f.length; ++i ) {
if ( matches( f[i] )) {
foundMatch = true;
// Handle match
break;
}
}
if ( ! foundMatch ) {
// Nothing matched. Handle error here.
}