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