Java:如何终止循环内部的条件检查
我有一个数组列表,如图所示 我的要求是,如果列表中包含值“M”,我希望终止for循环中的条件检查(如图所示,等于检查),但希望继续该for循环中的进一步操作 这是我的节目Java:如何终止循环内部的条件检查,java,Java,我有一个数组列表,如图所示 我的要求是,如果列表中包含值“M”,我希望终止for循环中的条件检查(如图所示,等于检查),但希望继续该for循环中的进一步操作 这是我的节目 package com; import java.util.ArrayList; import java.util.List; public class Jai { public static void main(String args[]) { String flag = null;
package com;
import java.util.ArrayList;
import java.util.List;
public class Jai {
public static void main(String args[]) {
String flag = null;
ArrayList<String> list = new ArrayList<String>();
list.add("M");
list.add("M");
list.add("M");
list.add("F");
list.add("M");
list.add("M");
list.add("M");
list.add("F");
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("M")) {
flag = "M";
} else {
flag = "F";
}
// this is to indicate that i need to continue further operations
// inside for loop
System.out.println("Hi");
}
if (flag.equals("M"))
System.out.println("This is M List");
else
System.out.println("This is F List");
}
}
package-com;
导入java.util.ArrayList;
导入java.util.List;
公共类Jai{
公共静态void main(字符串参数[]){
字符串标志=null;
ArrayList=新建ArrayList();
列表。添加(“M”);
列表。添加(“M”);
列表。添加(“M”);
列表。添加(“F”);
列表。添加(“M”);
列表。添加(“M”);
列表。添加(“M”);
列表。添加(“F”);
对于(int i=0;i
该列表由其中的值M组成,因此我想将其视为M列表
上面的程序是为了简单起见,实际上列表中将包含Employee对象。Add
continue代码>处于If状态
if (list.get(i).equals("M")) {
flag = "M";
continue;
}
添加继续代码>处于If状态
if (list.get(i).equals("M")) {
flag = "M";
continue;
}
如果我理解正确,您需要测试列表是否包含“M”。实现这一点的干净方法不是使用for循环,而是简单地调用
if (list.contains("M"))
不过,为了回答您的问题,您可以使用
if (list.get(i).equals("M")) {
flag = "M";
break;
}
如果您实际上只想在元素不是M的情况下在循环中执行某些操作,请执行以下操作
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("M")) {
flag = "M";
}
else {
flag = "F";
doSomethingOnlyForNonMElements();
}
}
for(int i=0;i
如果我理解正确,您需要测试列表是否包含“M”。实现这一点的干净方法不是使用for循环,而是简单地调用
if (list.contains("M"))
不过,为了回答您的问题,您可以使用
if (list.get(i).equals("M")) {
flag = "M";
break;
}
如果您实际上只想在元素不是M的情况下在循环中执行某些操作,请执行以下操作
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("M")) {
flag = "M";
}
else {
flag = "F";
doSomethingOnlyForNonMElements();
}
}
for(int i=0;i
更改
for (int i = 0; i < list.size(); i++) {
for(inti=0;i
到
for(int i=0;i
注意使用了“M”.equals(flag)
,因此当flag
为空时,我们不会抛出NPE
for (int i = 0; i < list.size(); i++) {
for(inti=0;i
到
for(int i=0;i
注意使用“M”.equals(flag)
,所以当flag
为null
时,我们不会抛出NPE
,我想这就是你要找的
boolean hasSeenM = false;
for (int i = 0; i < list.size(); i++) {
if ( !hasSeenM && list.get(i).equals("M")) {
hasSeenM = true;
}
// this is to indicate that i need to continue further operations
// inside for loop
System.out.println("Hi");
}
if (hasSeenM)
System.out.println("This is M List");
else
System.out.println("This is F List");
boolean hasSeenM=false;
对于(int i=0;i
我想,这就是你要找的
boolean hasSeenM = false;
for (int i = 0; i < list.size(); i++) {
if ( !hasSeenM && list.get(i).equals("M")) {
hasSeenM = true;
}
// this is to indicate that i need to continue further operations
// inside for loop
System.out.println("Hi");
}
if (hasSeenM)
System.out.println("This is M List");
else
System.out.println("This is F List");
boolean hasSeenM=false;
对于(int i=0;i
我建议按以下方法操作
// Indicates whether the list has M or not
boolean hasM = false;
// Go over the entire list
for (int i = 0; i < list.size(); i++) {
// Check if we found M within the list, if not, proceed
// to checking if the current item has M in it.
if (!hasM && list.get(i).equals("M")) {
// The current item is M, set hasM to true
hasM = true;
}
// this is to indicate that i need to continue further operations
// inside for loop
System.out.println("Hi");
}
正如JB Nizet答案中所述,您可以使用list.contains(“M”)
在迭代之前测试列表是否有M,但是,除非迭代本身需要,否则它会不必要地将方法复杂性增加到O(2n)而不是O(n)。我建议按以下方式执行
// Indicates whether the list has M or not
boolean hasM = false;
// Go over the entire list
for (int i = 0; i < list.size(); i++) {
// Check if we found M within the list, if not, proceed
// to checking if the current item has M in it.
if (!hasM && list.get(i).equals("M")) {
// The current item is M, set hasM to true
hasM = true;
}
// this is to indicate that i need to continue further operations
// inside for loop
System.out.println("Hi");
}
正如JB Nizet答案中所述,您可以使用list.contains(“M”)
在迭代之前测试列表是否有M,但是,除非迭代本身需要,否则它会不必要地将方法复杂性增加到O(2n)而不是O(n)。continue是您要查找的关键字。..Changefor(inti=0;ifor(inti=0;i
continue是您要查找的关键字..将for(inti=0;ifor(inti=0;i
他想继续循环的其余部分,但是,他需要的是继续
,而不是中断
@quetzalcatl,循环会像往常一样继续,op需要的是,如果得到M
他就不需要任何东西了。问题中的代码将继续迭代。@user974802:your选项不清楚。请提供示例输入和输出。@JB Niset,列表将由EMployee对象组成,而不是字符串,为简单起见,我提供了示例。break将从整个for循环中终止我。不过,他希望继续循环的其余迭代,他希望的是继续
,而不是中断
@quetzalcatl,循环将一如既往地继续,op需要的是,如果它得到M
,则他不需要任何东西。问题中的代码将继续迭代。@user974802: