繁体   English   中英

如何将这个int改成布尔错误?

[英]How can I correct this int to boolean error?

抱歉,我有一个思维障碍,谁能看到我为什么收到“无法从int转换为boolean”错误消息。 非常感激

public static void main (String[]args) {
  int max=10;
  int sum=0;
  int count=0;
  for(int counter=0;counter=max-4;counter++) {
    sum=max-4;
    count=max-3;
    for(sum=3;sum<5;sum++) {
      if(count==0 && max>0){
        System.out.println("Hello");
      } else if (count<4) {
        System.out.println("Go for it");
      } else {
        System.out.println("OK");
      } 
    }
  }
  sum=sum+count;
  System.out.println("Total = "+sum);
  System.out.println("Max = "+count);
}

我觉得我已经使用'=='来检查if条件。

=是赋值,您需要在循环的第二项中进行比较。

for(int counter=0;counter=max-4;counter++) {

应该

for (int counter = 0; counter < max - 4; counter++) {

(添加了空格,但请注意<是一个比较...也许您想要<= )。

对于Java,for循环的语法为

for(initialization; Boolean_expression; update) {
    // Statements
}

1)初始化部分仅在流程首次进入for循环时执行一次

2)接下来,根据条件解析布尔表达式

3)接下来,解决update语句,并在执行for循环的主体之后,流程转到布尔表达式,然后再执行update语句,然后流程继续进行。

因此,在您的程序中,您使用了一个赋值运算符,而不是布尔表达式,结果是6,而不是0或1。布尔表达式为true = 1false = 0 因此,整数6不能转换为布尔值。 因此,您可以使用counter < max-4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM