java - Do-while 循环不会逃脱 - Java

标签 java loops do-while

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/

相关文章:

java - 不使用 JavaMail 通过 Gmail 发送电子邮件

java - 快速分解算法?

C 程序 : Do-while loop to run program again not working properly

excel - 如何重新启动文件输入循环

java - 如何在其适配器内的 recyclerview 元素之间移动

excel - 插入形状逐渐变慢

C++:对象和数组/循环

java - 为什么我的字符串在经过 while 循环后不会更新?

c++ - do-while 无限循环与 if c++

java - 如何在 Android 中创建 10x10 网格?