2017-05-07 59 views
-2

我的任務需要我爲不同的用戶輸入打印不同的響應,並且我收到多個錯誤,當我嘗試建議的內容時,會收到更多錯誤,將我的代碼恢復到其原始狀態。我在解決問題時遇到了多個Java錯誤

我的代碼:

public static void main(String[] args) {String name; 
int love; 
Scanner scanIn = new Scanner(System.in); 

System.out.println("How much love do you need?"); 
love = scanIn.nextLine(); 
for (love = 0; love < 0;) 
    System.out.println("Everybody needs some love!"); 

for (love > 10); 
    System.out.println("You cannot handle that much love!"); 

for (love > 0; love < 10;) 
    System.out.println("I love you " 
     + Integer.toString(love+ " ways")); 
scanIn.close(); 

} 

}

原來的錯誤:

HelloMePoem.java:32: error: ';' expected 
    for (love = 0; love < 0); 
         ^
HelloMePoem.java:35: error: not a statement 
    for (love > 10); 
      ^
HelloMePoem.java:36: error: ')' expected 
      System.out.println("You cannot handle that much love!"); 
                   ^
HelloMePoem.java:38: error: not a statement 
    for (love > 0; love < 10); 
      ^
HelloMePoem.java:38: error: ';' expected 
    for (love > 0; love < 10); 
          ^

固定大部分這些錯誤之後(仍然不確定如何解決 「未聲明」 的錯誤) 。我收到這些錯誤:

HelloMePoem.java:35: error: not a statement 
    for (love > 10); 
      ^
HelloMePoem.java:35: error: ';' expected 
    for (love > 10); 
       ^
HelloMePoem.java:36: error: ')' expected 
      System.out.println("You cannot handle that much love!"); 
                   ^
HelloMePoem.java:38: error: not a statement 
    for (love > 0; love < 10;) 
      ^

剛一說明:這是使用Java和我幾乎不知道我在做什麼

+1

對於'for'循環和'if'條件,谷歌的基本java語法太難了陳述? –

+0

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html –

+0

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html –

回答

-2

for循環中的java具有特定的格式,其是

爲(初始化;終止;增量){
語句(多個)
}

以上3個參數是可選的,並且可以保持空白。但是,雖然它們是可選的,但必須遵循寫入for循環的格式。 所以,如果你的參數是空白的for循環看起來像這樣:

for (; ;) { 
    // your code goes here (b.t.w this is an infinite loop) 
} 

在你的代碼的問題是在for循環的格式和方式,您使用整數#的toString()
我已經修改如下代碼:

public static void main(String[] args) { 

    String name; 
    int love; 
    Scanner scanIn = new Scanner(System.in); 

    System.out.println("How much love do you need?"); 

    //Scanner has nextInt() which allows you to read integers without you having to convert the type. 
    love = scanIn.nextInt(); 
    for (love = 0; love < 0;) 
     System.out.println("Everybody needs some love!"); 

    for (;love > 10;) 
     System.out.println("You cannot handle that much love!"); 

    for (; love > 0 && love < 10;) 
     //no need to use Integer.toString(). Just pass the variable and it will be printed. 
     System.out.println("I love you " + love + " ways"); 

    scanIn.close(); 

} 

的JavaDoc參考:For-loop

+0

該程序始終不打印任何內容。可能不是OP的想法。 –

+0

同意。因爲每次愛都會得到值0分配 但提供的代碼是爲了解決格式問題。 –

+0

雖然這大多是正確的,但它確實回答了這個問題,我建議@rburrus不要將它逐字複製作爲答案 - 您的任務不會得到高分!這是關於循環如何工作的一個很好的解釋,但可能並不包括您的任務打算供您練習的所有元素。 – DaveyDaveDave

0

首先我第一次,我強烈建議對如何循環讀取tutorial Java的作品(特別是在how the for loop works);我認爲,一旦你這樣做,你會很快看到問題。

您的語法for循環不正確。

正確的語法是類似以下內容:

for (int i = 0; i < 10; i++) { 
    // Code 
} 

例如,

for (love = 0; love < 0;) 

你有沒有詳細說明如何在love變量實際上應該進行修改。此外,love = 0; love < 0;是平凡的錯誤。

看起來好像你可能混合了forwhile循環。例如,

for (love > 10); 

從根本上說是沒有意義的。

此外,您在;之後的事實意味着for循環不會執行任何操作(即使您的語法正確)。這是您爲什麼應該使用{}代碼塊的完美例證。

+0

掛上 - 你評論說你投票結束了這個問題,這意味着你認爲人們不應該被允許回答。然而,不到三分鐘後,在這裏!這是什麼?或者你認爲你應該是唯一被允許提供答案的人嗎? –

0

下面只是一些代碼,以幫助你找出信達X。我花了一些東西(比如你需要一個for循環還是一個if語句)

public static void main(String[] args) 
{ 
    String name; 
    int love; 

    Scanner scanIn = new Scanner(System.in); 

    System.out.println("How much love do you need?"); 

    love = scanIn.nextInt(); 

    for (int i = 1; i <= love; i++) 
    { 
     System.out.println("Everybody needs some love!"); 
    } 

    if (love > 10) 
    { 
     System.out.println("You cannot handle that much love!"); 
    } 

    for (int i = 1; i <= love; i++) 
    { 
     System.out.println("I love you " 
      + love + " ways"); 
    } 

    scanIn.close(); 

} 
相關問題