2017-05-07 106 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(); 

} 
相关问题