Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Int不能转换为布尔值??将代码从C转换为Java_Java_C_Printing_Int_Boolean - Fatal编程技术网

Int不能转换为布尔值??将代码从C转换为Java

Int不能转换为布尔值??将代码从C转换为Java,java,c,printing,int,boolean,Java,C,Printing,Int,Boolean,我有一个代码,我正在转换成Java,我是编程新手,但我已经在这两个PL上做了一些工作,尽管我不明白为什么会出现这个错误 原始C代码是: #include <stdio.h> #include <conio.h> int main () { int i, j, k; for (i=1; i<=59; i++) { k = 1; for (j=2; j<i; j++) if (i % (j*

我有一个代码,我正在转换成Java,我是编程新手,但我已经在这两个PL上做了一些工作,尽管我不明白为什么会出现这个错误

原始C代码是:

#include <stdio.h>
#include <conio.h>

int main () {
    int i, j, k;
    for (i=1; i<=59; i++) {
        k = 1;
        for (j=2; j<i; j++)
            if (i % (j*j) == 0) k = 0;
        if (k) printf ("%d\n", i);
    }
    printf("%d",i);
    getch();
}
#包括
#包括
int main(){
int i,j,k;

对于(i=1;i您不了解错误消息的哪些方面?
if(k)
在java语言中没有任何意义。您是否打算编写
if(k!=0)
来测试非零值?

您不了解错误消息的哪些方面?
if(k)
在java语言中没有任何意义。您是否打算编写
if(k!=0)
为了测试非零值?

与C语言不同,Java语言中的
int
不会在
boolean
中隐式转换


如果(k!=0)
:)

与C语言不同,Java语言中的
int
不会隐式转换为
boolean


如果(k!=0):)

C
中,您只需编写
,就可以将
int
作为
布尔值进行比较,任何非零值都被认为是真的。在Java中,情况并非如此。这是

if(k) System.out.println(i);
应该是

if(k != 0) System.out.println(i);

C
中,您可以将
int
作为
boolean
进行比较,任何非零值都被认为是真的。在Java中,情况并非如此。这是

if(k) System.out.println(i);
应该是

if(k != 0) System.out.println(i);

在Java中,布尔值可以是true或false。在C中,int代表布尔类型,true为非零,false为零。因此,您要查找的是:

public static void main(String[] args) {
    int i, j;
    boolean k;

    for(i=1; i<60; i++){
        k=true;
        for(j=2; j<i; j++){
            if(i % (j*j) == 0) 
                k=false;
        }
        if(k) System.out.println(i);
    }
    System.out.println(i);
}
publicstaticvoidmain(字符串[]args){
int i,j;
布尔k;

对于Java中的(i=1;i,布尔值要么为真,要么为假。在C中,int代表布尔类型,true为非零,false为零。因此,您要查找的是:

public static void main(String[] args) {
    int i, j;
    boolean k;

    for(i=1; i<60; i++){
        k=true;
        for(j=2; j<i; j++){
            if(i % (j*j) == 0) 
                k=false;
        }
        if(k) System.out.println(i);
    }
    System.out.println(i);
}
publicstaticvoidmain(字符串[]args){
int i,j;
布尔k;
对于(i=1;i2种修复方法):

1) 如果(k!=0)
,则使用
,因为在java中
int
int
,而
boolean
是它自己的类型

2) 既然如此,为什么不将
k
更改为布尔值呢?您使用它进行布尔检查,它只从0更改为1,因此如果您实际使用布尔值,它将更易于阅读

例如:

解决此问题的两种方法:

1) 如果(k!=0)
,则使用
,因为在java中
int
int
,而
boolean
是它自己的类型

2) 既然如此,为什么不将
k
更改为布尔值呢?您使用它进行布尔检查,它只从0更改为1,因此如果您实际使用布尔值,它将更易于阅读

例如:


添加了我的评论作为答案,并添加了一些额外的细节。添加了我的评论作为答案,并添加了一些额外的细节。感谢大家的努力,我让它运行了,但由于某些原因,它似乎不会产生与我的C程序相同的结果。我会尝试找到一种方法。谢谢大家的努力,我让它运行了,但它确实运行了由于某些原因,sen似乎不能产生与我的C程序相同的结果。不过我会设法找到一种方法