嘿,所以我在添加注释之前使用了这个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");
}
}
答案 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)
您已插入注释,大部分编程都包含在该注释中。只需删除您的评论,然后编译该程序。
您应该使用BlueJ
或Net Beans
,它会向您显示不同的配色方案,以确定您的编程模式有什么问题。