Java 我有三个错误;是预期的,还有其他的,没有if。我怎样修理它们?
我有3个错误。在第32行和第35行,我正在创建实例,它说;在每个实例的末尾都应该有一个else,而没有if。我怎样才能解决这个问题Java 我有三个错误;是预期的,还有其他的,没有if。我怎样修理它们?,java,Java,我有3个错误。在第32行和第35行,我正在创建实例,它说;在每个实例的末尾都应该有一个else,而没有if。我怎样才能解决这个问题 public class BookTest { public static void main(String args[]) { double charge; double grandTotal= 0; String dataArray[][] = {{"NonFiction"
public class BookTest {
public static void main(String args[])
{
double charge;
double grandTotal= 0;
String dataArray[][] = {{"NonFiction", "Abraham Lincoln Vampire Hunter","Grahame-Smith","978-0446563079","13.99","Haper","NY","US","Political"},
{"NonFiction", "Frankenstein","Shelley","978-0486282114","7.99","Pearson", "TX","England", "Historical"},
{"Fiction", "Dracula","Stoker","978-0486411095","5.99","Double Day", "CA","4918362"},
{"NonFiction", "Curse of the Wolfman"," Hageman","B00381AKHG","10.59","Harper", "NY","Transylvania","Historical"},
{"Fiction", "The Mummy","Rice","978-0345369949","7.99","Nelson","GA","3879158"}};
Book bookArray[] = new Book[dataArray.length];
int quantityArray[] = {12, 3, 7, 23, 5};
for (int i = 0; i < dataArray.length; i++) {
if (dataArray[i][0] == "NonFiction")
bookArray[i] = new NonFictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8], dataArray[i][9]));
else
bookArray[i] = new FictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8]));
}
String msg = "";
for (int i = 0; i < bookArray.length; i++) {
charge = bookArray[i].calculateTotal(quantityArray[i]);
grandTotal = charge + grandTotal;
msg += String.format("%s %s $%.2f\n",bookArray[i].getTitle(), bookArray[i].getIsbn(), charge);
}
msg += String.format("Grand Total $%.2f ", grandTotal);
JOptionPane.showMessageDialog(null, msg);
}
}
公共类图书测试{
公共静态void main(字符串参数[])
{
双重充电;
总双倍=0;
字符串数据数组[][]={{“非小说”、“亚伯拉罕·林肯吸血鬼猎人”、“格雷厄姆·史密斯”、“978-0446563079”、“13.99”、“哈珀”、“纽约”、“美国”、“政治”},
{《非小说类》、《弗兰肯斯坦》、《雪莱》、《978-0486282114》、《7.99》、《皮尔逊》、《德克萨斯州》、《英格兰》、《历史》},
{“小说”、“德古拉”、“斯托克”、“978-0486411095”、“5.99”、“双日”、“CA”、“4918362”},
{“非小说”、“狼人的诅咒”、“哈格曼”、“B00381AKHG”、“10.59”、“哈珀”、“纽约”、“特兰西瓦尼亚”、“历史”},
{“小说”、“木乃伊”、“赖斯”、“978-0345369949”、“7.99”、“纳尔逊”、“乔治亚州”、“3879158”};
Book bookArray[]=新书[dataArray.length];
int quantityArray[]={12,3,7,23,5};
for(int i=0;i
首先,您需要在代码周围放上黄铜。这将使编译器更容易发现错误
for (int i = 0; i < dataArray.length; i++)
{
if (dataArray[i][0] == "NonFiction")
{
bookArray[i] = new NonFictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8], dataArray[i][9]));
}else
{
bookArray[i] = new FictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8]));}
}
for(int i=0;i
这些行上有额外的括号
应该是
if (dataArray[i][0] == "NonFiction")
bookArray[i] = new NonFictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3], Double.parseDouble(dataArray[i][4]),
new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8], dataArray[i][9]);
else
bookArray[i] = new FictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3], Double.parseDouble(dataArray[i][4]),
new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8]);
您应该在长if语句周围加上大括号,因为它使代码更可读,但这不是您的错误。您的错误是,在分号之前的行末尾有一个右括号“)”比您应该的多 因此,您的代码应该如下所示:
for (int i = 0; i < dataArray.length; i++) {
if (dataArray[i][0] == "NonFiction") {
bookArray[i] = new NonFictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8], dataArray[i][9]);
} else {
bookArray[i] = new FictionBook(dataArray[i][0], dataArray[i][1], dataArray[i][2], dataArray[i][3],
Double.parseDouble(dataArray[i][4]), new Publisher(dataArray[i][6], dataArray[i][7]), dataArray[i][8]);
}
}
for(int i=0;i
在您的else
和if
周围加上大括号。删除“dataArray[i][9]);“->”中最后两个括号中的一个数据数组[i][9]);'和"dataArray[i][8]);“->”dataArray[i][8]);”。您可以在if和else仍然是一条指令的内部编写代码,因此不需要大括号。然而,如果在if和else中的代码周围加上大括号,阅读代码可能会更清晰。