Java 如何修复布尔方法中的死代码警告?(i+;+;)

Java 如何修复布尔方法中的死代码警告?(i+;+;),java,Java,我正在做一个刽子手游戏,这个布尔语句不会运行,因为I++是死代码。下面是受影响的代码 代码: import java.util.*; 公共级刽子手{ 扫描仪键盘=新扫描仪(System.in); Random rand=新的Random(); char[]字; 字符[]用户输入; int Lengthofward; 布尔isIn(字符c,字符[]字){ lengthofWord=单词长度; 对于(int i=0;i

我正在做一个刽子手游戏,这个布尔语句不会运行,因为I++是死代码。下面是受影响的代码

代码:

import java.util.*;
公共级刽子手{
扫描仪键盘=新扫描仪(System.in);
Random rand=新的Random();
char[]字;
字符[]用户输入;
int Lengthofward;
布尔isIn(字符c,字符[]字){
lengthofWord=单词长度;
对于(int i=0;i
如果
,则不要在
中返回。您的循环当前不返回。此外,您的逻辑向后看。假设您希望在
字符c
出现在
单词中时返回
true
,则需要如下内容:

boolean isIn(char c, char[] word)
{
    int lengthofWord = word.length;
    for (int i = 0; i < lengthofWord; i++) {
        if (word[i] == c) {
            return true;
        }
    }
    return false;
}

i++
没有用处的原因是,在比较第一个字符之后,您正在
return
ing,因为
if
else
都有
return
语句

您可以按照Elliott在回答中的更正简化您的方法,并进一步更新为:

boolean isIn(char c, char[] word) {
    return IntStream.range(0, word.length).noneMatch(i -> word[i] == c);
}
或者根据方法的名称,逻辑上应该是如果数组中有任何字符,则使用

boolean isIn(char c, char[] word) {
    return IntStream.range(0, word.length).anyMatch(i -> word[i] == c);
}
boolean isIn(char c, char[] word) {
    return IntStream.range(0, word.length).noneMatch(i -> word[i] == c);
}
boolean isIn(char c, char[] word) {
    return IntStream.range(0, word.length).anyMatch(i -> word[i] == c);
}