Int不能转换为布尔值??将代码从C转换为Java
我有一个代码,我正在转换成Java,我是编程新手,但我已经在这两个PL上做了一些工作,尽管我不明白为什么会出现这个错误 原始C代码是: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*
#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程序相同的结果。不过我会设法找到一种方法