Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向foreach循环添加其他参数_Java_Loops_For Loop_Foreach_Traversal - Fatal编程技术网

Java 向foreach循环添加其他参数

Java 向foreach循环添加其他参数,java,loops,for-loop,foreach,traversal,Java,Loops,For Loop,Foreach,Traversal,我有一个foreach循环 boolean doesWordMatch = false; for(Character[] charArr : charSets) { if(doesWordMatch) //dosomething else break; } 我在想,到底有没有办法将条件放入for循环?e、 g for(Character[] charArr : charSets && doesWordMatch == true) { //dosome

我有一个foreach循环

boolean doesWordMatch = false;
for(Character[] charArr : charSets)
{
  if(doesWordMatch)
    //dosomething
  else
    break;
}
我在想,到底有没有办法将条件放入for循环?e、 g

for(Character[] charArr : charSets && doesWordMatch == true)
{
  //dosomething
}

编辑--对,那么这在while循环中可能吗o

否,这不能在增强的for循环中完成

您可以尝试以下方法:

for (Character[] charArr : charSets) {
    if (!doesWordMatch) {
        break;
    }
    //do interesting things
}

我相信这也比在循环声明中包含所有内容更简洁。

不,这不能在增强的for循环中完成

您可以尝试以下方法:

for (Character[] charArr : charSets) {
    if (!doesWordMatch) {
        break;
    }
    //do interesting things
}

我相信这也比在循环声明中包含所有内容更简洁。

布尔变量doesWordMatch在for循环中会发生变化吗

如果没有,我建议:

if(doesWordMatch)
  for(Character[] charArr : charSets)
  {
    //dosomething
  }
}

布尔变量doesWordMatch是否会在for循环中更改

如果没有,我建议:

if(doesWordMatch)
  for(Character[] charArr : charSets)
  {
    //dosomething
  }
}
如果您只想将“If”块从for循环中去掉,那么您可以用老式的方式来完成

Iterator<Character[]> i=charSets.iterator();
for(Character[] charArr=i.next(); i.hasNext() && doesWordMatch == true; charArr=i.next() ) {
        // do something
}
Iterator i=charSets.Iterator();
for(Character[]charArr=i.next();i.hasNext()&&doesWordMatch==true;charArr=i.next()){
//做点什么
}
如果您只想将“If”块从for循环中去掉,那么您可以用老式的方法来完成

Iterator<Character[]> i=charSets.iterator();
for(Character[] charArr=i.next(); i.hasNext() && doesWordMatch == true; charArr=i.next() ) {
        // do something
}
Iterator i=charSets.Iterator();
for(Character[]charArr=i.next();i.hasNext()&&doesWordMatch==true;charArr=i.next()){
//做点什么
}

如果要在
charArr
doesWordMatch
之间创建映射:

Map<Character[], Boolean> map = new HashMap<>();
map.put(charArr, doesWordMatch);

for(Map.Entry<Character[], Boolean> myEntry : map.entrySet()) {
    if(myEntry.getValue()) {
        // do something with myEntry.getKey();
    } else {
        break;
    }
}
Map Map=newhashmap();
地图放置(charArr,doesWordMatch);
对于(Map.Entry myEntry:Map.entrySet()){
if(myEntry.getValue()){
//用myEntry.getKey()做点什么;
}否则{
打破
}
}

我不确定这是否就是您要寻找的,但我想不出任何其他理由希望
doesWordMatch
变量进入循环。在这种情况下,如果要在
charArr
doesWordMatch
之间创建映射,则每个
charArr

doesWordMatch
可以不同:

Map<Character[], Boolean> map = new HashMap<>();
map.put(charArr, doesWordMatch);

for(Map.Entry<Character[], Boolean> myEntry : map.entrySet()) {
    if(myEntry.getValue()) {
        // do something with myEntry.getKey();
    } else {
        break;
    }
}
Map Map=newhashmap();
地图放置(charArr,doesWordMatch);
对于(Map.Entry myEntry:Map.entrySet()){
if(myEntry.getValue()){
//用myEntry.getKey()做点什么;
}否则{
打破
}
}

我不确定这是否就是您要寻找的,但我想不出任何其他理由希望
doesWordMatch
变量进入循环。在这种情况下,
doesWordMatch
对于每个
charArr

可以不同使用迭代器和带有空白增量语句的标准for循环:

Character[] curr;
for(Iterator<Character[]> iter = charSets.iterator(); iter.hasNext() && doesWordMatch;) {
  curr = iter.next();
  // ...
}
Character[]curr;
for(迭代器iter=charSets.Iterator();iter.hasNext()&&doesWordMatch;){
curr=iter.next();
// ...
}

使用迭代器和带有空白增量语句的标准for循环:

Character[] curr;
for(Iterator<Character[]> iter = charSets.iterator(); iter.hasNext() && doesWordMatch;) {
  curr = iter.next();
  // ...
}
Character[]curr;
for(迭代器iter=charSets.Iterator();iter.hasNext()&&doesWordMatch;){
curr=iter.next();
// ...
}


这基本上是OP的第一个例子,你注意到了吗?你认为他的意思是说如果(){}否则{}:D我想知道——这在while循环中可能吗?@MarkoTopolnik我看到了一个根本的区别。我认为OP想做的是将所有内容包装在
if-else
-语句中,从而导致更多条件下的巨大代码混乱。我的建议是,在有趣的事情开始发生之前,将布尔检查向前推进。@GwenWong我看不到一个很好的方法。我承认这可能是OP(她?)代码中困扰OP的一个(较小的)方面。这基本上是OP的第一个例子,你注意到了吗?你认为他的意思是说它比if(){}else{}更整洁吗:D我想知道——这在while循环中可能吗?@MarkoTopolnik我看到了一个根本的区别。我认为OP想做的是将所有内容包装在
if-else
-语句中,从而导致更多条件下的巨大代码混乱。我的建议是,在有趣的事情开始发生之前,将布尔检查向前移动。@GwenWong我看不到一个很好的方法。我承认这可能是困扰OP(她?)代码的一个(较小的)方面。你在集合上循环,而不是在条件上循环!没有增强的while循环,所以任何人都猜不出你在想什么。这里可能回答了为什么在这种情况下你要为循环调用内部条件?你在集合上循环,而不是在条件上循环!没有增强的while循环,所以任何人都猜不出你在想什么。可能在这里回答了在这种情况下为什么要调用循环内部的条件?我坚信
doesWordMatch
在迭代过程中会发生变化,否则整个问题就没有意义了。我不是在问你,我在问OP。如果你是正确的,你上面的建议不是很好,如果你知道你不应该,为什么要进入for循环?@skiwi,为什么你会因为我有一个你认为你有答案的问题而否决一个比你更好的建议?我没有否决你,请保留您的评论。我坚信,
doesWordMatch
在迭代过程中会发生变化,否则整个问题就没有意义了。我不是问你,我是问OP。如果你是对的,你上面的建议就不那么好了,如果你知道你不应该这样做,为什么要进入for循环?@skiwi为什么你会因为我有一个你认为你有答案的问题而否决一个比你的建议更好的建议?我没有否决你,请你自己保留你的评论。这个片段对于一个空的集合来说并不可靠,但是我同意这样的建议:如果OP想要在for循环检查中内联一个额外的条件,那么就使用迭代器和标准for循环。这个代码段对于空集合来说并不健壮,但是如果OP想要在for循环检查中内联一个额外的条件,那么我同意使用迭代器和标准for循环的建议。