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) ...