Reputation: 169
I get an "int cannot be dereferenced" error on this code. It might be because I applied .length on it. What else can I do to iterate through the int?
int num;
System.out.print("Enter a positive integer: ");
num = console.nextInt();
if (num > 0)
for (int i = 0; i < num.length; i++)
System.out.println();
Upvotes: 6
Views: 57137
Reputation: 41
int num = 110102;
String strNum = Integer.toString(num);
for (int i = 0; i < strNum.length(); i++) {
System.out.println(strNum.charAt(i));
}
int num = 1234;
while(num>0) {
int remainder = num % 10;
System.out.println(remainder);
num = num / 10;
}
Upvotes: 1
Reputation: 2436
for (int i = 0; i < num; i++)
Your num
already is a number. So your condition will suffice like above.
Example: If the user enters 4
, the for statement will evaluate to
for (int i = 0; i < 4; i++)
, running the loop four times, with i
having the values 0, 1, 2
and 3
If you wanted to iterate over each digit, you would need to turn your int back to a string first, and then loop over each character in this string:
String numberString = Integer.toString(num);
for (int i = 0; i < numberString.length(); i++){
char c = numberString.charAt(i);
//Process char
}
If you wanted to iterate the binary representation of your number, have a look at this question, it might help you.
Note: though it might not be required, I would suggest you to use {}
-brackets around your statement blocks, to improve readability and reduce chance of mistakes like this:
if (num > 0) {
for (int i = 0; i < num; i++) {
System.out.println();
}
}
Upvotes: 10
Reputation: 513
Try the following code:
import java.util.Scanner;
public class IntExample {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int num = console.nextInt();
console.close();
if (num > 0) {
for (int i = 0; i < num; i++) {
System.out.println(i);
}
}
}
}
Upvotes: 2