2017-09-26 26 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); 

} 

}