Java While循环不会继续要求用户输入
我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用Java While循环不会继续要求用户输入,java,Java,我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用while循环可以解决这个问题,但我不知道如何让它工作 这是我的密码: import java.util.Scanner; 公共类计算器{ 专用静态扫描仪sc; 公共静态void main(字符串[]args)
while
循环可以解决这个问题,但我不知道如何让它工作
这是我的密码:
import java.util.Scanner;
公共类计算器{
专用静态扫描仪sc;
公共静态void main(字符串[]args)
{
整数,i,oddSum=0;
sc=新扫描仪(系统英寸);
系统输出打印(“请输入任何数字:”);
编号=sc.nextInt();
while(数字%2!=0)//这里是我遇到问题的地方
{
继续;
}
for(i=1;icontinue;
作为一条语句,向上向外扫描第一个可以继续的构造。可以继续的内容当前只有for
、while
和do/while
语句,因此它会找到while(number%2!=0)
,并将继续它
继续while循环意味着:直接跳回条件number%2!=0
,对其求值,如果为真,则再次进入循环;如果为假,则跳转到}
因此,您的代码检查数字是否为奇数。如果是,它将..继续。因此,它将..检查数字是否为奇数。如果是,它将检查数字是否为奇数。如果是,它将检查数字是否为奇数…永远
大概您的意图是再次询问用户,但随后您必须围绕更多代码进行循环:从打印开始,因为肯定是sc.nextInt()
需要在循环中。这意味着您将没有要检查的数字
值,但这就是do/while循环的作用:保证您至少循环一次(并且可以使用循环中计算的任何内容作为条件的一部分)
继续while循环意味着:直接跳回条件number%2!=0
,对其求值,如果为真,则再次进入循环;如果为假,则跳转到}
因此,您的代码检查数字是否为奇数。如果是,它将..继续。因此,它将..检查数字是否为奇数。如果是,它将检查数字是否为奇数。如果是,它将检查数字是否为奇数…永远
大概您的意图是再次询问用户,但随后您必须围绕更多代码进行循环:从打印开始,因为肯定是sc.nextInt()
需要在循环中。这意味着您将没有要检查的数字
值,但这就是do/while循环的作用:保证您至少循环一次(并且可以使用循环中计算的任何内容作为条件的一部分).如果数字不是奇数,则还应在循环中使用扫描仪
while (number % 2 !=0) {
number = sc.nextInt(); // Use here as well to keep asking for a number until is odd
}
如果数字不是奇数,还应在while
循环中使用扫描仪
while (number % 2 !=0) {
number = sc.nextInt(); // Use here as well to keep asking for a number until is odd
}
你的困惑似乎是因为误解了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!");
你的困惑似乎是因为误解了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!");
我希望这个输出就是您想要的,您以前的代码不起作用的原因是number=sc.nextInt()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// int number, i, oddSum = 0;
int number, i, oddSum = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Please Enter any Number : ");
do{
number = sc.nextInt();
if(number % 2 == 0){
System.out.print("Please Enter an odd number!: ");
}
}while(number % 2 == 0);
for(i = 1; i <= number; i++)
{
if(i % 2 != 0)
{
oddSum = oddSum + i;
}
}
System.out.println("\nThe Sum of Odd Numbers up to " + number + " = " + oddSum);
}
}
我希望这个输出就是您想要的,您以前的代码不起作用的原因是number=sc.nextInt()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// int number, i, oddSum = 0;
int number, i, oddSum = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Please Enter any Number : ");
do{
number = sc.nextInt();
if(number % 2 == 0){
System.out.print("Please Enter an odd number!: ");
}
}while(number % 2 == 0);
for(i = 1; i <= number; i++)
{
if(i % 2 != 0)
{
oddSum = oddSum + i;
}
}
System.out.println("\nThe Sum of Odd Numbers up to " + number + " = " + oddSum);
}
}
询问用户直到他们输入奇数,您可能必须使用number=sc.nextInt()重新读取用户在循环中的输入;
而不是使用continue
。我尝试了这个方法,但是当我输入一个无效的数字时,代码就结束了,而不是再次询问问题。思考方法:如果用户没有输入一个正整数,会发生什么?例如-7或3.14询问用户直到他们输入一个奇数,您可能必须重新阅读e用户使用number=sc.nextInt()在循环中输入;
而不是使用continue
。我尝试了这个方法,但是当我输入一个无效的数字时,代码就结束了,而不是再次问问题。想想看:如果用户没有输入一个正整数会怎么样?例如-7或3.14谢谢!我现在意识到,while循环应用于奇数,而我没有输入奇数将其改为适用于偶数,因此,如果该数字为偶数,它将要求用户再次输入。我的问题是,如何获得仅在while循环中检查输入的数字是否为偶数的值?谢谢!