我如何遍历int

时间:2016-01-28 06:52:17

标签: java

我得到一个“int无法解除引用”这可能是因为.lenght就可以了,我还可以做什么来迭代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();

3 个答案:

答案 0 :(得分:4)

for (int i = 0; i < num; i++)

您的num已经是一个号码。所以你的情况就足够了。

示例:如果用户输入4,则for语句将评估为 for (int i = 0; i < 4; i++),运行循环四次,i的值为0, 1, 23

如果您想迭代每个数字,则需要首先转换int back to a string,然后在此字符串中转换loop over each character

String numberString = Integer.toString(num);

for (int i = 0; i < numberString.length(); i++){
    char c = numberString.charAt(i);        
    //Process char
}

如果您想迭代您的号码的二进制表示,请查看this问题,它可能会对您有所帮助。

注意:虽然可能不需要,但我建议您在语句块周围使用{}括号,以提高可读性并减少出错的可能性:

if (num > 0) {
    for (int i = 0; i < num; i++) {
        System.out.println();
    }
}

答案 1 :(得分:2)

请尝试以下代码:

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);
            }
        }
    }
}

答案 2 :(得分:0)

IntStream.range(0, num).forEach(System.out::println);