[英]While loop will not continue to ask the user for an input
我對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);
}
}
提前致謝!
continue;
作為語句“向上和向外”掃描可以繼續的第一個構造。 可以繼續的事情目前僅for
, while
和do/while
語句,因此它會找到while (number % 2 != 0)
並將繼續它。
繼續 while 循環意味着:直接跳回到條件number %2 != 0
,對其進行評估,如果為真,則再次進入循環,如果為假,則跳到}
。
因此,您的代碼會檢查數字是否為奇數。 如果是,它將.. 繼續。 所以,它會......檢查數字是否為奇數。 如果是,它將檢查數字是否為奇數。 如果是,它將檢查數字是否為奇數......永遠。
想必你的意圖是再次詢問用戶,但你不得不環繞更多的代碼循環:開始與print
,因為肯定sc.nextInt()
必須在循環中。 那並不代表你會不會有一個number
值來檢查,但是這就是做/ while循環是:為了保證您的循環至少一次(所以你可以使用循環計算什么作為條件的一部分)。
您還應該在while
循環內使用掃描儀,以防數字不是奇數。
while (number % 2 !=0) {
number = sc.nextInt(); // Use here as well to keep asking for a number until is odd
}
您的困惑似乎來自誤解,即continue
意味着回到while
循環,而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();
這就是為什么你可以提示用戶輸入的原因,所以你必須循環它,此外,你可以根據用戶在if語句中輸入的內容給出特定的提示,希望這有幫助!
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);
}
}
輸出:
Please Enter any Number : 2
Please Enter an odd number!: 2
Please Enter an odd number!: 3
The Sum of Odd Numbers up to 3 = 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.