Java - 否则如果没有if?

时间:2013-01-31 18:49:01

标签: java comments if-statement

嘿,所以我在添加注释之前使用了这个Java程序,但是现在我收到了一个错误,其中if和else语句说他们没有if,这些注释会干扰if语句的读取方式吗?任何帮助深表感谢。

/**
  * A class that takes 2 different times in military time as input and 
  * outputs the difference in hours and minutes.
  *
  * @author Name
  */
import java.util.Scanner;
public class Assignment1Q3
{
    public static void main(String[] args) 
    { 
    Scanner in = new Scanner(System.in);
    System.out.print("Please enter the first time: ");
    int fTime = in.nextInt();
    System.out.print("Please enter the second time: ");
    int lTime = in.nextInt();
    int tDifference = Math.abs(fTime - lTime);//Calculates the absolute difference.
    String strTDiff = String.valueOf(tDifference);//Converts the value to a String.
    int length = strTDiff.length();//Obtains the length of the value.
    String hours = "";//Declares the values to be initialized in the if statement.
    String minutes = "";
    if (length == 4)
    {
        hours = strTDiff.substring(0, 2);/**If the number of digits is 4, the first
        minutes = strTDiff.substring(2, 4);*two are the hour.
     }                                      */
    else if (length == 3)
    {
        hours = strTDiff.substring(0, 1);/**If the number of digits is 3, the first
        minutes = strTDiff.substring(1, 3);*one is the hour.
    }                                      */
    else
    {
        hours = ("0");                   /**If the number of digits is not 4 or  3,
        minutes = strTDiff.substring(0, 1);*the value is less than 1 hour.
    }                                      */
    System.out.println(hours + " hours " + minutes + " minutes");
    }
}

6 个答案:

答案 0 :(得分:9)

这是因为在}else之间评论了/*之前的*/

任何正确的代码编辑器的颜色都应该明确,就像在问题中一样。

答案 1 :(得分:3)

您已为if,else和elseif.Remove it

注释了结束花括号

答案 2 :(得分:1)

正如您可以在网站上直接看到的那样(语法高亮显示),您确实已经注释掉了其中一些:}。三,如果我没有弄错的话。这就是导致错误的原因。你还注释了三行代码(可能是故意的,但我想我会提到它)。我建议你使用一些IDE。我自己使用Eclipse for Java。

您可以在Java中使用双斜杠//注释掉单行(双斜杠右侧的所有内容都将被注释掉)

答案 3 :(得分:1)

您在所有if,else if和else语句

中都注释了结束括号
if (length == 4)
{
    hours = strTDiff.substring(0, 2);/**If the number of digits is 4, the first
    minutes = strTDiff.substring(2, 4);*two are the hour.
}                                      */

看起来您并不确切知道块注释的工作原理。您假设评论仅适用于每行*字符后面的文本。实际上,所有字符(包括换行和回车)都会被注释掉,直到达到*/。 您可能希望更改代码,使其对于每个条目看起来都是这样的:

if (length == 4)
{
    /* If the number of digits is 4, the first
     * two are the hour.
     */
    hours = strTDiff.substring(0, 2);
    minutes = strTDiff.substring(2, 4);
}         

注意评论第二行的星号不是必需的,这可能会有所帮助。 E.g:

/* If the number of digits is 4, the first
   two are the hour.
 */

这仍然是一个有效的块评论。 (虽然不那么可读)

答案 4 :(得分:1)

是。您的*/(关闭评论)与}(关闭if块)位于同一行,从而使其成为评论的一部分。它还注释了一些我认为你想要执行的代码。

广告注释标记/**/会将它们之间的所有内容都包含在注释中,包括换行符。代码开头的注释中每个新行上的星号都只是样式和对齐,没有实际意义。

答案 5 :(得分:0)

您已插入注释,大部分编程都包含在该注释中。只需删除您的评论,然后编译该程序。 您应该使用BlueJNet Beans,它会向您显示不同的配色方案,以确定您的编程模式有什么问题。