'How do I iterate through an int
I get an "int cannot be dereferenced" It might be because .lenght 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.lenght; i++)
System.out.println();
Solution 1:[1]
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();
}
}
Solution 2:[2]
IntStream.range(0, num).forEach(System.out::println);
Solution 3:[3]
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);
}
}
}
}
Solution 4:[4]
- Using Integer.toString Method
int num = 110102;
String strNum = Integer.toString(num);
for (int i = 0; i < strNum.length(); i++) {
System.out.println(strNum.charAt(i));
}
- Using Modulo Operator `
int num = 1234;
while(num>0) {
int remainder = num % 10;
System.out.println(remainder);
num = num / 10;
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | Michael Rodionov |
| Solution 3 | user2173372 |
| Solution 4 | Bhavesh Salunke |
