Java 使用带有嵌套if语句的for循环中的Scanner类新建|双输出

Java 使用带有嵌套if语句的for循环中的Scanner类新建|双输出,java,for-loop,java.util.scanner,Java,For Loop,Java.util.scanner,我是一个非常新的编码和需要一些帮助,我真的卡住了,环顾四周,但无法找到确切的我做错了什么,所以搜索是不可能的 我有一个实验室,你要求用户输入一个整数,但是 ,读取第一个整数后,我必须使用字符串或字符询问用户是否要输入另一个整数。如果用户输入“N”,则将跳过并结束程序。如果用户输入“Y”,他们将输入另一个整数,它将跟踪该整数是偶数还是奇数,依此类推,直到用户输入“N”,并在末尾显示输入的偶数或奇数的总数。我以一种独特的方式尝试了这一点,我认为,很可能不是以一种非常“整洁”的方式。输出结果通常如下所

我是一个非常新的编码和需要一些帮助,我真的卡住了,环顾四周,但无法找到确切的我做错了什么,所以搜索是不可能的

我有一个实验室,你要求用户输入一个整数,但是 ,读取第一个整数后,我必须使用字符串或字符询问用户是否要输入另一个整数。如果用户输入“N”,则将跳过并结束程序。如果用户输入“Y”,他们将输入另一个整数,它将跟踪该整数是偶数还是奇数,依此类推,直到用户输入“N”,并在末尾显示输入的偶数或奇数的总数。我以一种独特的方式尝试了这一点,我认为,很可能不是以一种非常“整洁”的方式。输出结果通常如下所示: 是否要输入一个整数?: 对 输入一个整数: 7. 7是奇怪的! 是否有其他整数要输入Y/N?: Y 是否有其他整数要输入Y/N?: 输入一个整数: 6. 6是偶数! 是否有其他整数要输入Y/N?: N 是否有其他整数要输入Y/N?: 奇数:1 偶数:1 我只是一直在想你也想要。。。我不知道该怎么解释我真的希望我不是含糊不清的谢谢你

    String Y = " ";

    int integer = 0; 
    int even = 0;
    int odd = 0;
    int x = 0;
    int b = 0;




    System.out.println("Would you like to enter an integer?: ");
    yes = in.nextLine();

    if(yes.equals("yes") || yes.equals("yes"))
    {


                         System.out.println("Enter an integer: ");
                        integer = in.nextInt();   
                        if((integer % 2)==0||(integer ==0))
                        {
                            System.out.println(integer+ " is Even!");
                                       even++;
                        }
                        else if((integer %1)==0)
                        {
                            System.out.println(integer+ " is Odd!");
                                    odd++;
                        }
                        x = 10;


        for(int i = 5; i <= x; i++)
                {

                    Y = in.nextLine();
                    System.out.println("Do you have another integer to enter (Y/N)?: ");





                            if(Y.equals("Y"))
                            {
                                b = 1;
                                if(b == 1)
                                {
                                        x = 10;
                                        b = 0;

                                        System.out.println("Enter an integer: ");
                                        integer = in.nextInt();

                                        if((integer % 2)==0||(integer ==0))
                                         {
                                             System.out.println(integer+ " is Even!");
                                             even++;
                                         }
                                        else if((integer %1)==0)
                                        {
                                             System.out.println(integer+ " is Odd!");
                                             odd++;
                                         }
                                }

                            }
                            else if(Y.equals("N"))
                            {
                                Y = "N";
                                x = 0;
                            }
                }
            System.out.println("Odd numbers: "+odd);
            System.out.println("Even numbers: "+even);

    }





}

让我们把你的代码分解一下,也许你可以看到这里出了什么问题。如果您只是逐行阅读代码,您自己就会看到其中的大部分内容。似乎您需要了解循环,特别是对于这个任务,while循环

其次,要计算等于奇数或偶数的整数数,请使用计数器。在本网站或谷歌上搜索大量资源

我的所有评论都指出了代码的一些明显缺陷:

 String Y = " ";

int integer = 0;
int even = 0;
int odd = 0;
int x = 0;
int b = 0;

// no main method

//Specify what the user input should be to continue or to exit
//your program in the first question, not later on. They have no idea 
//what word you are expecting them to type. What if they entered 
//"sure" or "yep" or "nah"

System.out.println("Would you like to enter an integer?: ");

//This needs to be declared.
yes =in.nextLine();

//At this point, you have no way to exit the program because you have not utilized any
//sort of loop. A while loop would work great here.

// this if statement makes no sense and is redundant

    if(yes.equals("yes")||yes.equals("yes"))

{
    System.out.println("Enter an integer: ");
    integer = in.nextInt();

    if ((integer % 2) == 0 || (integer == 0)) {
        System.out.println(integer + " is Even!");
        even++;
    } else if ((integer % 1) == 0) {
        System.out.println(integer + " is Odd!");
        odd++;
    }

    //Why is int x even here? What is its purpose?
    x = 10;

    //Again, what is this for loop for?
    for (int i = 5; i <= x; i++) {



        //This entire section doesn't need to be here. Use a loop. 
    /*
        Y = in.nextLine();
        System.out.println("Do you have another integer to enter (Y/N)?: ");


        if (Y.equals("Y")) {
            b = 1;
            if (b == 1) {
                x = 10;
                b = 0;

                System.out.println("Enter an integer: ");
                integer = in.nextInt();

                if ((integer % 2) == 0 || (integer == 0)) {
                    System.out.println(integer + " is Even!");
                    even++;
                } else if ((integer % 1) == 0) {
                    System.out.println(integer + " is Odd!");
                    odd++;
                }
            }

        } else if (Y.equals("N")) {
            Y = "N";
            x = 0;
        }
    }*/
    System.out.println("Odd numbers: " + odd);
    System.out.println("Even numbers: " + even);

}

}以下是一个简单的例子,我认为您正在寻找:

public static void main(String[] args) {
        System.out.println("Would you like to enter an integer");
        Scanner s = new Scanner(System.in);
        String ans;
        int odd = 0, even = 0, num;
        boolean b = true;
        while (b) {
            ans = s.next();
            if (ans.equalsIgnoreCase("yes")) {
                System.out.println("Please enter an integer");
                num = s.nextInt();
                if (num % 2 == 0) {
                    even++;
                } else if (num % 1 == 0) {
                    odd++;
                }
                System.out.println("Do you have another integer to enter");
            } else {
                b = false;
            }
        }
        System.out.println("Odd: " + odd + " Even: " + even);
    }

但是,您需要将它整理好,以完全符合您的需要。

我读了这篇文章,立即停止阅读。这是严重的吗?Ifies.equalsyes | | | yes.equalsyes在问题中,而不是在注释中指出这一点,然后重新阅读代码。如果你编写了无意义的代码,你很可能会得到这样的结果:else ifY.equalsN{Y=N;x=0;}Y=N有什么用;你有空吗?