java 不允许布尔型转换int,不能将Int转换为布尔值吗?将代码从C转换为Java

I have a code that I am converting into Java, Im new to programming but I already have done some work on both PL, although I do not understand why I get this error

The original C code is:

#include

#include

int main () {

int i, j, k;

for (i=1; i<=59; i++) {

k = 1;

for (j=2; j

if (i % (j*j) == 0) k = 0;

if (k) printf ("%d\n", i);

}

printf("%d",i);

getch();

}

My converted Java code:

import java.util.*;

public class squarefree {

public static void main(String[] args) {

int i, j,k;

for(i=1; i<60; i++){

k=1;

for(j=2; j

if(i % (j*j) == 0)

k=0;

if(k) System.out.println(i);

}

System.out.println(i);

}

}

}

Can someone please explain? Thanks guys :)

解决方案

2 ways to fix this:

1) Use if (k != 0), since in java an int is an int and a boolean is its own type.

2) Having said that, why not change k to a boolean value? You're using it for a boolean check, and it only changes from 0 to 1, so if you actually use the boolean value it'll be much easier to read.

eg:

boolean k = true;

// your code here

// your ifstatement to change k

k = false;

// print code

if (k) ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值