java - for循环后的打印语句不打印,为什么?

标签 java

//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_111

import java.util.*;
import java.lang.*;

class Rextester
{  
    public static void main(String args[])
    {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int number;
        for(int i=0;i<=n;i++){
            int count=0;
            number=in.nextInt();
            while(number!=0){
                count++;
                number=number/10;
                }System.out.println(count);

        }System.out.println(n);//this does not get printed
    }
}

n 应打印输入的 n。 为什么 for 循环后没有打印 n ? 它在 for 循环内打印

最佳答案

我认为您认为它没有打印的原因是因为您的 for 循环运行了比您预期的额外的迭代。

假设您输入 1 ,然后999 ,输出为3 。此时,您希望循环结束并且 1 (即 n )再次打印对吧?但因为你的 for 循环 header 显示 int i=0;i<=n ,它实际上会运行 (n+1) 次。循环还没有结束,输出 999 后,并再次等待您的输入。这可能会让您认为程序已经结束而没有打印 n .

您应该将 for 循环条件更改为 i < n .

关于java - for循环后的打印语句不打印,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58022185/

相关文章:

java - 如何从我的应用程序向另一台 Android 设备发送短信

java - 如何在读取 kafka 主题时验证无效的分区名称

java - ResourceBundle 示例不起作用

java - 如何确保应用程序窗口在启动时可见?

Java - 定义用于创建对象的行,而不是仅使用方法

Java:使用 JaxB 编码到 XML,如何正确地进行多线程

Java并发HashMap

java - 如何在 JPanel 中将背景图像设置为 JTextArea

java - android微调器更改字体字体

java - 驱动器 REST API 插入错误,错误显示请求太长