【问题标题】:How do I iterate through an int我如何遍历一个 int
【发布时间】:2016-05-05 10:09:35
【问题描述】:

我得到一个“int cannot be dereferenced”这可能是因为它上面有 .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();

【问题讨论】:

  • 如果i=5 是什么意思,那么您是否希望i 达到喜欢1 的长度或5 的长度。 ?对于i=10 然后102 一样明智。!!
  • 你预计数字的“长度”是多少?

标签: java


【解决方案1】:
IntStream.range(0, num).forEach(System.out::println);

【讨论】:

  • 欢迎来到 Stack Overflow。虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。 How to Answer
【解决方案2】:

for (int i = 0; i &lt; num; i++)

您的num 已经是一个数字。所以你的条件就足够了。

示例: 如果用户输入 4,for 语句将评估为 for (int i = 0; i &lt; 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 问题,它可能会对您有所帮助。


注意:虽然可能不是必需的,但我建议您在语句块周围使用{}-brackets,以提高可读性并减少出现此类错误的机会:

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

【讨论】:

    【解决方案3】:

    试试下面的代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 2018-03-27
      相关资源
      最近更新 更多