我得到一个“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();
答案 0 :(得分:4)
for (int i = 0; i < num; i++)
您的num
已经是一个号码。所以你的情况就足够了。
示例:如果用户输入4
,则for语句将评估为
for (int i = 0; i < 4; i++)
,运行循环四次,i
的值为0, 1, 2
和3
如果您想迭代每个数字,则需要首先转换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);