【问题标题】:How do you understand loops?你如何理解循环?
【发布时间】:2013-11-15 17:08:39
【问题描述】:
    Scanner kb=new Scanner(System.in);
    int n=kb.nextInt();
    do{
        System.out.println("How many numbers do you wish to store?");

    }while (n<1);

所以我的问题是,我不知道如何退出这样的循环,并且想知道如何才能这样做。我试图让用户必须输入一个数组大小的数字,直到他们输入大于 0 的值。显然这只是代码的一小部分,但我真的想知道答案的 WHY这。循环是我从来不擅长的事情,显然它很重要。我所看到的只是通用语法答案,但是如果我们必须用英语说这个,我们在说什么?谢谢,一切顺利。

【问题讨论】:

    标签: input while-loop do-while


    【解决方案1】:

    正如您所描述的,当用户输入大于零的值时,循环将退出。目前,等待用户输入的部分代码在循环之外,因此您需要将其移入,如下所示:

    int n = 0; // initialize our loop control variable
    do{
        System.out.println("How many numbers do you wish to store?");
        n=kb.nextInt();
    }while (n<1);
    

    为了回答你关于“为什么”的问题,我不确定我是否完全理解你在寻找什么样的解释,但基本上,这段代码用简单的英语说这样的话:

    询问用户他们想要存储多少个数字。

    如果用户输入的数字小于零,请再次询问他们,并继续询问相同的问题,直到他们给出大于零的数字

    就是这样。如果我误解了您的问题,请告诉我。

    【讨论】:

    • 这太神奇了,我一直不好意思在论坛上寻求帮助,但是你们在几分钟内就为我完成了我半个学期一直在寻找的事情。这是一个直截了当的答案。至少从我的经验来看,最难的部分是弄清楚你要告诉程序做什么。因此,将其翻译成这样是惊人的。非常感谢。
    • 对不起,对不起,但由于某种原因,eclipse 给我一个错误,说当我把它放在上面时,n 无法解析为变量。当我尝试在循环之外对其进行初始化时,它会突出显示我的扫描仪并说存在重复的局部变量。
    • @NicholasBrandon 哎呀,我忘了。 int n 部分在块内声明(由花括号表示),并且仅存在于 while 条件看不到的范围内。基本上,int n 应该在循环之前声明。在循环内部,删除int 部分,这样你就只有n = kb.nextInt()。我会更新答案。
    • 你绝对是最棒的。
    • @NicholasBrandon 没问题,祝你好运。另外,不要忘记接受答案(单击问题左侧的绿色复选标记),以最能帮助您的为准。
    【解决方案2】:

    你说的是英文,正是它现在所说的: 做,循环内的东西(即'{'和'}'之间的东西),while n小于1。“while”之后的逻辑表示何时停止。现在,你的循环中的东西实际上并没有改变 n,所以你要么运行一次然后退出(如果 kb.nextInt() 小于 1),或者永远运行(如果不是)。您必须在循环内修改 n 。

    【讨论】:

    • 非常感谢,这很有意义。
    猜你喜欢
    • 2021-06-11
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多