所以我对java很新,我正在尝试编写一个程序,可以为过期的书籍打印正确的罚款。我已经读过这样的多个问题,其中大多数都涉及大括号错位,但我无法在任何地方找到括号错误。我的程序中一直出现多个错误,但大多数读取“非法启动类型”或“非法启动表达”有人可以帮我处理我的代码/给我一些关于支架放置的提示吗?
这是我的代码:
public class BookFine
{
public static void main(String[] args)
{
int daysLate = 0;
int bookCost = 0;
int result = 0;
System.out.print("Enter how many days your book is overdue: ");
int daysLate = IO.readInt();
System.out.println("Days Late = " + daysLate);
System.out.print("How much does your book cost(enter in cents): ");
int bookCost = IO.readInt();
System.out.println("Book Cost = " + bookCost);
if (daysLate=<7)
{
result=daysLate*10;
}
else
if(daysLate>7)
{
result=(daysLate-7)*20+70;
}
if(daysLate>90)
{
result= bookCost+1000;
}
IO.outputStringAnswer(result);
}
}
答案 0 :(得分:0)
在程序中两次声明变量存在问题。我已经纠正了代码。请参考以下代码。
public class BookFine {
public static void main(String[] args)
{ int daysLate = 0;
int bookCost = 0;
int result = 0;
System.out.print("Enter how many days your book is overdue: ");
daysLate = IO.readInt();
System.out.println("Days Late = " + daysLate);
System.out.print("How much does your book cost(enter in cents): ");
bookCost = IO.readInt();
System.out.println("Book Cost = " + bookCost);
if (daysLate<=7)
{
result=daysLate*10;
}
else
if(daysLate>7)
{
result=(daysLate-7)*20+70;
}
if(daysLate>90)
{
result= bookCost+1000;
}
IO.outputStringAnswer(result);
}
}
答案 1 :(得分:0)
您的其他分支似乎没有括号
else
if(daysLate>7)
{
result=(daysLate-7)*20+70;
}
if(daysLate>90)
{
result= bookCost+1000;
}
应该是
else
{
if(daysLate>7)
{
result=(daysLate-7)*20+70;
}
if(daysLate>90)
{
result= bookCost+1000;
}
}
答案 2 :(得分:-1)
我能够识别的代码中有几个错误。
首先是表达式:
if(daysLate=<7)
倒退了。它应该读
if(daysLate<=7)
接下来,在main下面的代码的开头,您将声明变量“daysLate,bookCost”。然后,在您的行之后:
System.out.print("Enter how many days your book is overdue: ");
您要将变量重新声明为:
int DaysLate
删除daysLate和bookCost上的“int”部分,假设你在某处定义了IO类,它应该运行正常。
答案 3 :(得分:-1)
这里有一些问题。
daysLate=<7
;我假设你的意思是使用&lt; =运算符。修复此问题将解决您提出的特定错误int daysLate = IO.readInt();
;这一行的问题在于您已经声明了一个名为&#39; daysLate&#39;的变量。这可以通过以下两种方式之一修复:删除&#39; int&#39;在这一行的开头,或删除第4行的原始声明。(我更喜欢前者。)IO.readInt()
;没有名为IO的类,至少不是代码导入的内容。但是,有许多不同的方法可以从键盘读取输入。如果这是您的意图(看起来是这样),您可能需要查找java.util.Scanner类的文档和示例。我再说一遍,有不止一种方法可以实现这一点,即使你不想使用扫描仪,所以选择你的毒药:)IO.outputStringAnswer(result)
;与#3相同,但这次看起来你似乎试图在某处输出结果。也许System.out.println()在这里按顺序排列。int bookCost = IO.readInt()
;与#2和#3相同。 &#39; bookCost&#39;已在此范围内定义,因此您无需再次声明它(删除&#39; int&#39;)。而且,您需要编写工作键盘输入。哦,欢迎来到Java!