当前位置: 首页 > 知识库问答 >
问题:

虽然循环不会继续要求用户输入

戚成礼
2023-03-14

我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用while循环可以解决这个问题,但我不知道如何让它工作。

这是我的密码:

import java.util.Scanner;

public class OddCalculator {
    private static Scanner sc;
    public static void main(String[] args) 
    {
        int number, i, oddSum = 0;
        sc = new Scanner(System.in);
        System.out.print(" Please Enter any Number : ");
        number = sc.nextInt();  
        while (number % 2 !=0) //HERE IS WHERE IM HAVING THE ISSUE
        {
            continue;
        }
        for(i = 1; i <= number; i++)
        {
            if(i % 2 != 0)
            {
                oddSum = oddSum + i; 
            }
        }
        System.out.println("\n The Sum of Odd Numbers upto " + number + "  =  " + oddSum);
    }
}

提前谢谢!

共有3个答案

邢博涛
2023-03-14

你的困惑似乎是因为误解了continue意味着回到循环,而break是让你脱离循环的原因。这对你有用吗?

System.out.println(" Please Enter any Number : ");
number = sc.nextInt();

// keep asking for a number for as long as it is even (condition is false on odd)
while (number % 2 == 0) {
   System.out.println("Please enter another number: ");
   number = sc.nextInt();
}

System.out.println(number + " is now odd!");

吕向阳
2023-03-14

如果数字不是奇数,还应在while循环中使用扫描仪。

while (number % 2 !=0) {
    number = sc.nextInt(); // Use here as well to keep asking for a number until is odd
}
    
石喜
2023-03-14

继续 作为语句“向上和向外”扫描第一个可以继续的构造。当前可以继续的内容只有forwhiledo/while语句,因此它会查找while(数字%2!=0),并将其继续。

若要继续一个time循环,则意味着:直接跳回到条件数字%2!=0,计算它,然后再次进入循环,如果它是true,或跳到},如果它是false。

因此,您的代码检查数字是否为奇数。如果是的话,它会。。持续所以,它会。。检查号码是否为奇数。如果是,它将检查数字是否为奇数。如果是,它将检查数字是否为奇数。。。。永远

大概你的意图是再次询问用户,但是你必须用更多的代码来包装循环:从print开始,因为当然sc.nextInt()需要在循环中。这确实意味着您没有要检查的数字值,但这就是do/time循环的作用:保证您至少循环一次(以便您可以使用循环中计算的任何内容作为条件的一部分)。

 类似资料:
  • 在生命数==0之后,while语句为false,必须退出循环。但在这种情况下,即使循环为false,也会执行循环。

  • hasNext()的定义是“如果此扫描仪的输入中有另一个标记,则返回true。此方法可能会在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。” 当我把 standardInput.hasNext() 放在 for 循环中时,程序会向无穷大运行。但是如果我把它放在 while-loop 中,它不会运行到无穷大。这两个程序之间的区别在哪里,为什么其中一个有效而另一个无效? for循环: while-l

  • 我已经看了这个程序几个小时了,但我仍然不明白其中的逻辑。程序要求用户输入整数。 一旦用户输入了整数,它将向用户输出所有的正数、负数和输入的总数,以及这些数字的平均值。 这是我陷入困境的地方: 然后它会询问用户是否要继续。用户将输入或以指示他们是否要继续。如果用户输入“y”,循环将再次进行,如果他们输入“n”,它将显示再见消息。我不知道如何设置。 我已经尝试了一个 do while 循环,我目前正在

  • 我正在尝试编写一个函数,该函数将取一个整数,将其除以数字,将其相加,如果总和为 我并不是真的在寻找一个最佳的解决方案,我只是想知道为什么这不起作用。

  • 我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!

  • 我正在写一个叫做hangman.py的程序。在我的程序中,用户不能在我的输入中输入“?”或空白。例如,用户不能输入“?xx?xx?”或“我该怎么做”。但用户可以输入诸如“ldkdjgg”或“stop-go”之类的内容。如果用户输入诸如“?xxxxx”或“我该怎么做”之类的内容,我必须不断询问用户请输入一个不包含的要猜测的单词?或空白:“.我的问题是如何打印”请输入一个不包含字符的要猜测的单词?或空