布尔和for循环JAVA

时间:2012-10-10 00:18:55

标签: java

int a=25: 
for (double i=1;i<=a;i++) 
{
    int b=5*i; 
    boolean value= b==a; 
    System.out.println(value);
 }

当i = 5时,此方法为true,否则为false。因此,当i = 5时,该值可以为true,但我的程序将为我打印:false-false-false-false-TRUE-false-false-false ...如何让这个程序为我打印为TRUE。 PS:我知道假或假或TRUE或false = True ..但我如何在for循环中使用它?

4 个答案:

答案 0 :(得分:4)

也许这个?

int a=25; 
for (double i=1;i<=a;i++) { 
    int b = 5 * (int)i;  // you must cast "i" in order for this to compile 
    boolean value = b == a;  // you probably wanted "b == a" not "b == i" 
    if (value)
        System.out.println("true");
}

即。我们仅在"true"value时才打印true


要在value变为true时停止循环,我们可以使用break声明:

int a=25; 
for (double i=1;i<=a;i++) { 
    int b = 5 * (int)i;
    boolean value = b == a; 
    if (value) {
        System.out.println("true");
        break;
    }
}

答案 1 :(得分:1)

像这样:

int a=25,b: 
boolean value;
for (double i=1;i<=a;i++) { 
    b=5*i; 
    value = (b==i); 
    if (value) {
        System.out.println(value);
    }
}

也从不在循环体内声明变量,因为它们在每次迭代中都被重新声明 - 这是不好的实践。

编辑: LoL,此代码始终打印为false,因为

,它无法打印
 b=5*i;

和5 * i永远不等于i

EDIT ^ 2:

正如CodeGuru建议的那样,使用== i,它只打印一次真实:

int a=25,b;
boolean value;
for (double i=1;i<=a;i++)     {
    b=5*(int)i; 
    value= i==a; 
    if (value) {
        System.out.println(value);
    }
}

答案 2 :(得分:0)

执行此操作的一种方法类似于添加数字列表。你需要一个累加器,它是一个保存结果的变量。在循环之前声明这个:

boolean value = false;

现在在循环内部,使用|=运算符:

value |= (b == i);

然而,这似乎是一个丑陋的解决方案。当您找到true值时,您打算做什么?

答案 3 :(得分:0)

      int a = 25;
    for (double i = 1; i <= a; i++) {
        double b = 5 * i;
        if (b == a) {
            boolean value = b == a;
            System.out.println(value);
        }
    }

这将起作用