我想在输入奇数时得到输出(例如3)它将输出' 3'如果我输入偶数,它将打印错误的输入'。 我知道我可以使用if else但我想使用 while循环来获取它。 我是编程的初学者,所以如果有人能帮助我,我将不胜感激
这是我的代码。当我运行它时出现错误。
import java.util.Scanner;
public class UserInput {
public static void main(String[] args) {
int num;
num = readOddNum();
System.out.println("The odd integer is" + num);
}
public static int readOddNum() {
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Enter an odd number: ");
int num1 = sc.nextInt();
sc.close();
while ((num < 0) &&(num % 2 == 0)) {
System.out.println("Wrong input!");
}
return readOddNum();
}
}
答案 0 :(得分:0)
您应该将代码更改为
public static int readOddNum() {
Scanner sc = new Scanner(System.in);
System.out.print("Enter an odd number: ");
int num1 = sc.nextInt();
while ((num1 < 0) || (num1 % 2 == 0)) {
System.out.println("Wrong input! - try again");
num1 = sc.nextInt();
}
sc.close();
return num1;
}
答案 1 :(得分:0)
将readOddNum逻辑更改为此..
public static int readOddNum() {
int num;
Scanner sc = new Scanner(System.in);
num = readNumber(sc);
while ((num < 0) || (num % 2 == 0)) {
System.out.println("Wrong input!");
num = readNumber(sc);
}
sc.close();
return num;
}
public static int readNumber(Scanner sc){
System.out.print("Enter an odd number: ");
return sc.nextInt();
}
答案 2 :(得分:0)
可以按以下方式重写代码
import java.util.Scanner;
public class UserInput
{
public static void main(String[] args)
{
//int num;
readOddNum();
//System.out.println("The odd integer is" + num);
}
public static void readOddNum()
{
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.print("Enter an odd number: ");
int num1 = sc.nextInt();
sc.close();
while ((num1 < 0) ||(num1 % 2 == 0))
{
System.out.println("Wrong input!");
break;
}
System.out.println("The odd integer is" + num1);
// return readOddNum();
}
}
正如您所看到的,我直接调用了方法readOddNum();
并将其定义为void
而不是早期版本。另外,请注意while循环中的更改。您正在使用num
初始化0
并在while循环中使用它,而循环应该在num1
上运行,这是实际的用户输入,而不是num
。
接下来你使用&&
(逻辑AND)代替||
(逻辑OR),两者显然有不同的含义。 &&
意味着即使用户输入2
之类的偶数,它也应该小于0
,但事实并非如此。所以你需要使用||
。此外,一旦打印语句,您将需要使用break来停止循环,否则它将继续无限执行,因为没有其他停止条件。请记住,if else
已经为这样的场景创建,您必须在两种或更多场景之间进行选择,并且只执行一次,因此while循环将起作用,但它也将执行print语句,从而声明wrong input
和odd number
。这是你得到的输出
C:\Java\jdk1.8.0_141\bin>java UserInput
Enter an odd number: 3
The odd integer is3
C:\Java\jdk1.8.0_141\bin>java UserInput
Enter an odd number: 2
Wrong input!
The odd integer is2
希望你理解这个概念。感谢它,如果你喜欢它。谢谢。