Java奇偶整数添加是或否问题再次播放

Java奇偶整数添加是或否问题再次播放,java,if-statement,methods,while-loop,do-while,Java,If Statement,Methods,While Loop,Do While,我对Java非常陌生,正在努力完成一项作业。我读过好几篇文章,但似乎不知道如何在代码中添加“输入·y·到·再次播放·n·到·退出(y/n)”。这是我到目前为止所拥有的。任何指示都将不胜感激。我不知道如何让它返回输入一个数字。THX //显示偶数或奇数整数的程序 导入java.util.Scanner; 公共课偶数{ publicstaticvoidmain(String[]args){//用于确定数字是偶数还是奇数的方法 扫描仪输入=新扫描仪(System.in); int number;//不

我对Java非常陌生,正在努力完成一项作业。我读过好几篇文章,但似乎不知道如何在代码中添加“输入·y·到·再次播放·n·到·退出(y/n)”。这是我到目前为止所拥有的。任何指示都将不胜感激。我不知道如何让它返回输入一个数字。THX

//显示偶数或奇数整数的程序
导入java.util.Scanner;
公共课偶数{
publicstaticvoidmain(String[]args){//用于确定数字是偶数还是奇数的方法
扫描仪输入=新扫描仪(System.in);
int number;//不能输入数字
System.out.print(“输入一个数字:”;//提示用户输入一个数字
number=input.nextInt();
开关(编号%2){
案例0:
System.out.printf(“%d为偶数”,数字);
案例1:
System.out.printf(“%d为奇数\n”,数字);
}
System.out.print(“输入Y再次播放,输入N退出:”;//提示用户输入数字
number=input.nextInt();
}
公共布尔值isEven(整数){
返回编号%2==0;
}//结束方法isEven
}//结束类偶数
结果:

Enter one number: 1
1 is odd
Enter Y to play again, N to quit: n
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at EvenOdd.main(EvenOdd.java:21)

您得到的异常会告诉您,输入与您尝试分配的正确类型不匹配。基本上:您试图将类型
字符串
(例如“Y”/“N”)分配给
int
。这将抛出一个错误。请在此处阅读有关不同类型的更多信息:

下面是关于如何解决此问题的建议。您还会注意到,我在您的程序中添加了一个while循环,以便能够再次播放。 要更改的代码是
input.nextInt()
input.next()
。您还需要更改将其分配给哪个变量,因为您无法将
字符串
分配给
int
。 还增加了
break
到您的
开关
语句,因此它不会遍历每种情况

public class Main {

    public static void main(String[] args) { //method to determine is a number is even or odd
        String cont = "Y";
        Scanner input = new Scanner(System.in);
        while (cont.equals("Y")) {
            int number; //number o be entered
            System.out.print("Enter one number: "); //prompt user to enter a number
            number = input.nextInt();
            switch (number % 2) {
                case 0:
                    System.out.printf("%d is even\n", number);
                    break; //NOTICE here
                case 1:
                    System.out.printf("%d is odd\n", number);
                    break; //NOTICE here
            }
            System.out.print("Enter Y to play again, N to quit: "); //prompt user to enter a number
            cont = input.next(); // <---- This is what you want 
        }
        System.out.println("Did not want to play again, exiting...");
    }
}
公共类主{
publicstaticvoidmain(String[]args){//用于确定数字是偶数还是奇数的方法
字符串cont=“Y”;
扫描仪输入=新扫描仪(System.in);
而(续等于(“Y”)){
int number;//不能输入数字
System.out.print(“输入一个数字:”;//提示用户输入一个数字
number=input.nextInt();
开关(编号%2){
案例0:
System.out.printf(“%d为偶数”,数字);
break;//注意这里
案例1:
System.out.printf(“%d为奇数\n”,数字);
break;//注意这里
}
System.out.print(“输入Y再次播放,输入N退出:”;//提示用户输入数字

cont=input.next();//您需要一个循环,对于y/n问题,您必须阅读一条字符串,打印“输入y以再次播放,输入n以退出”,然后调用
nextInt()
。为什么您认为
int
可以接受
Y
N
字符?Y和N不是数字。
inputmaschException
表示您希望用户输入一个数字,但她输入了一个字母。您需要使用方法
next()
为了接受用户的“Y”或“N”。@Abra如果您使用
nextLine()
,您会遇到这个问题:谢谢。作为编程新手,信息量非常大,最小的事情可能会非常令人沮丧。我可以在关于不匹配的回复中看到运行主题(显示在错误中)。我知道这是相关的,但没有经验,无法理解修复。我想我明白了-请参见下文。再次感谢您的快速回复。以后可能会有更多问题。谢谢。从最初的回复中,我能够理解错误,但无法理解修复。将数字转换为字母没有意义。您的输入非常有用:输入一个数字:6 6是偶数输入y再次播放,n是退出(y/n):y输入一个数字:5是奇数输入y再次播放,n是退出(y/n):n用户不想继续。。。