如何在for语句中添加if,else语句

Rus*_*ell 0 java for-loop if-statement

你如何if...elsefor声明中发表声明?

这是代码:

// This is within a actionListener. When ever I press a button, this happens.
for (int i = 0; i < booleanVariable.length; i++) {
    //length is 8
    System.out.println("booleanVariable is" + booelanVariable[i]);
    if (booleanVariable[i] = true) {
        booleanVariable[i] = false;
        System.out.println("booleanVariable was true")
        break;
    } else {
        System.out.println(" booleanVariable is false");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是3台印刷机的输出:

booleanVariable is true
booleanVariable was true
//correct    


booleanVariable is false
booleanVariable was true
//incorrect.    

booleanVariable is false
booleanVariable was true
//incorrect
Run Code Online (Sandbox Code Playgroud)

这意味着,由于某种原因,即使booleanVariable为false,输出也是如此,这是假的.

我发现了什么:

  • 如果没有这个break;陈述,程序将全部绕过8次并输出完全相同的没有a break,只有不正确的值再输出5次.

我尝试过的:

  • 将if从true更改为false(绝望之外)
  • 如果在For的内部
  • 否则,如果
  • 机箱开关

通常情况下,我只是使用一个开关,但我使用的是布尔值,布尔值不工作就是开关.

如果有人知道答案,我将永远感激不尽.谢谢.

Cam*_*ron 5

你的问题可能在这一行:

if (booleanVariable[i] = true) {

==除非您打算将值设置为true,否则应使用布尔比较.无论如何,这一行总是评估为真.

还要注意,你真的不需要比较true,你可以简单地说:

if (booleanVariable[i]) {

因为如果值为true,则输入代码块,如果为false,则进入else情况.


Jos*_*tos 5

改变你的

if (booleanVariable[i] = true) {
Run Code Online (Sandbox Code Playgroud)

if (booleanVariable[i] == true) {
Run Code Online (Sandbox Code Playgroud)

您需要使用==运算符进行比较.一个=设置true返回始终为true 的值.您也可以将其更改为

if (booleanVariable[i]) {
Run Code Online (Sandbox Code Playgroud)