错误“char无法转换为布尔值”

时间:2018-02-20 08:10:14

标签: java

以下是错误。预期输出

>>> instance.get_instance_attribute.__self__  # the instance
<__main__.MyClass object at 0x10f92b5f8>
>>> instance.get_class_attribute.__self__     # the class
<class '__main__.MyClass'>

但它给出了错误“不兼容的类型:char无法转换为布尔值”

ch is now : U
ch is now : V
ch is now : W
ch is now : X
ch is now : Y

3 个答案:

答案 0 :(得分:1)

    for ( ch = 85; ch = 90; ch++){

请阅读Java documentation for声明。请注意,一般表格表示为

  

for(初始化;终止;        增量) {       声明(S)   }

  

当终止表达式的计算结果为false时,循环   终止。

&#34;终止&#34;这里应该是一个评估为truefalse的条件。

ch=90不能用于&#34;终止&#34;因为这是一项作业,不会评估为truefalse

您可以考虑将其更改为ch<=90以使&#34;终止&#34;设置为ch达到90时,使循环运行直到ch为&#34;小于或等于&#34; 90,一旦它增加到91,循环终止,因为条件评估为false导致&#34;终止&#34;循环

答案 1 :(得分:0)

我不熟悉Java,但也许你可以试试这个,

class chararithdemo {
    public static void main(String[] args) {
// added assigning of ch = 0 so it is not empty.
        char ch = '';
// changed ch = 90 to ch <= 90 so it doesn't assign but compare the two.
        for ( ch = 85; ch <= 90; ch++){
           System.out.println( " ch is now : " + ch);
        }
    }
}    

答案 2 :(得分:0)

  

ch&lt; 90是一个条件,应该被评估为布尔值,因此误差,而ch = 90是赋值,即我们是   将90分配给ch;

public static void main(String[] args) {

                char ch ;
                for ( ch = 85; ch < 90; ch++){ //error is here
                   System.out.println( " ch is now : " + ch);
                }

    }

这是适合您的控制台:

 ch is now : U
 ch is now : V
 ch is now : W
 ch is now : X
 ch is now : Y