作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
do-while 循环是否在值递增之前或之后检查该值?我似乎无法使这个 do-while 循环转义,并且无法确定这是否是我犯的错误。这个循环的重点是获取用户的输入,当他们点击“X”时,我希望循环结束。我是否使用了错误的循环类型,或者可能是错误的语句?
int i = 0,
inputCount = 0;
char letter = 'a';
String[] coefficient = new String[MAX_LENGTH];
do{
System.out.print("What is " + letter +"? ");
coefficient[i] = keyboard.nextLine();
i++;
letter++;
inputCount++;
}while(coefficient[i] != "X");
最佳答案
不要使用 ==
比较字符串。请改用 equals(...)
或 equalsIgnoreCase(...)
方法。了解 == 检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,并且这才是重要的。所以而不是
if (fu == "bar") {
// do something
}
做,
if ("bar".equals(fu)) {
// do something
}
或者,
if ("bar".equalsIgnoreCase(fu)) {
// do something
}
<小时/>
特别是在你的情况下,我会改变
} while(coefficient[i] != "X");
类似:
} while(!"X".equalsIgnoreCase(coefficient[i]));
<小时/>
您的代码中还有另一个问题,您想要测试放入 coefficient[i]
中的用户输入,但随后您立即增加 i 变量,使得 coefficient[i]
不再引用输入。
所以也许测试应该是:
} while(!"X".equalsIgnoreCase(coefficient[i - 1]));
关于java - Do-while 循环不会逃脱 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444047/
我是一名优秀的程序员,十分优秀!