2017-09-26 27 views
-2

我是一个非常新的编码,需要一些帮助,我真的被卡住,四处张望,但无法找到我究竟做错了什么,所以搜索是不可能的。我有一段可怕的时间来解释并试图描述什么是错误的,所以我会尽我所能,尽力而为。新的|双输出使用Scanner类for循环嵌套if语句

所以我有一个实验室,你问用户一个整数,但 ,第一个整数读取后,我必须问用户(使用字符串或字符),如果他们想要输入另一个整数。如果用户输入'N',它将跳过并结束程序。如果用户输入'Y',他们将输入另一个整数,它将跟踪整数是偶数还是奇数,依此类推,直到用户输入'N'并在结尾处显示偶数总数或输入奇数。我以一种独特的方式尝试了这一点,我认为这很可能不是一种“很整齐”的方式。输出通常结束如: 要输入整数吗?: 是 输入整数: 7是奇数! (Y/N)?: 您是否有另一个整数可以输入(Y/N)?: 输入整数: 6是Even! 你有另一个整数输入(Y/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); 

    } 





} 
+1

我读了这个,立即停止阅读。这是严重的吗? if(yes.equals(“yes”)|| yes.equals(“yes”)) – Stultuske

+0

在问题中提出,而不是在评论中。 – Stultuske

+0

并重新读取您的代码。如果你编写废话,你可能会得到如下结果:else if(Y.equals(“N”)) { Y =“N”; x = 0; }那Y =“N”有什么用处;对你有帮助吗? – Stultuske

回答

0

这里是什么,我想你一个简单的例子正在寻找:

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); 
    } 

然而,你需要整理它以准确地匹配你需要的东西。

0

让我们分解你的代码,也许你可以看到这里有什么问题。如果你刚刚一行一行地阅读你的代码,你自己就会看到大部分代码。看起来您需要了解循环,特别是针对此任务的while循环。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

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

我所有的评论指出,与代码中的一些明显的缺陷:

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); 

} 

}