只要数组包含 JAVA 中的某个值,我将如何编写一个将连续循环的语句
How would I write a statement that will loop continuously as long as an array contains a certain value in JAVA
如何编写只要数组包含特定值就会不断循环的语句?只要数组包含特定字符,我就需要它继续循环,但如果数组不包含这些字符值,则停止循环。
我在下面有点这个,但我几乎 100% 肯定它不会起作用
for(int PieceChecker = 0, PieceChecker < 1){
//Code that needs to be carried out
if (Arrays.asList(board).contains(♖)){
PieceChecker++;
}
}
只需使用 while
循环。基本构造可以是
while (true) {
// test situation
if (!goodSituation()) {
break;
}
// do something here
}
while (Arrays.asList(board).contains("♖")) {
//do something
}
根据@shmosel 的评论编辑:-
对于像int[]
这样的原始数组,你可以在while
条件下使用这样的东西:-
IntStream.of(a).anyMatch(x -> x == 2)
对于基本的char
数组,你可以使用这个条件:-
new String(cArr).indexOf('♖') > -1
根据问题,您不清楚您是想循环简单的字符数组还是字符数组列表。
在这里,我想到了一些可能会有所帮助的东西。
private static char[] myCharArray = new char[] { '\u00A9', '\u00AE', '\u00DD', 'A', 'B' };
private static Logger _log = Logger.getLogger(Test.class.getCanonicalName());
public static void main(String[] args) {
// 1. Using character array directly
for (int i = 0; i < myCharArray.length; i++) {
while (myCharArray[i] == '\u00A9') {
_log.info("Inside char array as this condition holds true");
}
}
// 2. List of char arrays.
List<char[]> list = Arrays.asList(myCharArray);
for (char[] cs : list) {
for (char c : cs) {
while(c =='A'){
_log.info("Inside charToList array as this condition holds true");
}
}
}
}
使用字符串比使用列表更容易处理此类只涉及字符的情况。使用无限 for
循环并在发现其中缺少该字符后跳出它。为此,您可以使用 indexOf
。
下面是可能对您有帮助的代码片段:
String board_string = new String(board);
for(;;) {
if(board_string.indexOf('♖') == -1) {
System.out.println("Breaking out of loop...");
break;
}
else {
//do something here
}
}
如何编写只要数组包含特定值就会不断循环的语句?只要数组包含特定字符,我就需要它继续循环,但如果数组不包含这些字符值,则停止循环。
我在下面有点这个,但我几乎 100% 肯定它不会起作用
for(int PieceChecker = 0, PieceChecker < 1){
//Code that needs to be carried out
if (Arrays.asList(board).contains(♖)){
PieceChecker++;
}
}
只需使用 while
循环。基本构造可以是
while (true) {
// test situation
if (!goodSituation()) {
break;
}
// do something here
}
while (Arrays.asList(board).contains("♖")) {
//do something
}
根据@shmosel 的评论编辑:-
对于像int[]
这样的原始数组,你可以在while
条件下使用这样的东西:-
IntStream.of(a).anyMatch(x -> x == 2)
对于基本的char
数组,你可以使用这个条件:-
new String(cArr).indexOf('♖') > -1
根据问题,您不清楚您是想循环简单的字符数组还是字符数组列表。 在这里,我想到了一些可能会有所帮助的东西。
private static char[] myCharArray = new char[] { '\u00A9', '\u00AE', '\u00DD', 'A', 'B' };
private static Logger _log = Logger.getLogger(Test.class.getCanonicalName());
public static void main(String[] args) {
// 1. Using character array directly
for (int i = 0; i < myCharArray.length; i++) {
while (myCharArray[i] == '\u00A9') {
_log.info("Inside char array as this condition holds true");
}
}
// 2. List of char arrays.
List<char[]> list = Arrays.asList(myCharArray);
for (char[] cs : list) {
for (char c : cs) {
while(c =='A'){
_log.info("Inside charToList array as this condition holds true");
}
}
}
}
使用字符串比使用列表更容易处理此类只涉及字符的情况。使用无限 for
循环并在发现其中缺少该字符后跳出它。为此,您可以使用 indexOf
。
下面是可能对您有帮助的代码片段:
String board_string = new String(board);
for(;;) {
if(board_string.indexOf('♖') == -1) {
System.out.println("Breaking out of loop...");
break;
}
else {
//do something here
}
}