我一直在尝试编写一段实践代码来计算如果缺少本书,则图书馆将根据所处的日期,月份等的不同而罚款。
这是编译器消息:
Solution.java:26: error: illegal start of expression
if((givDate[1]-expDate[1])>0){
^
Solution.java:25: error: not a statement
if((givDate[2]-expDate[2]) == 0) (
^
Solution.java:26: error: ';' expected
if((givDate[1]-expDate[1])>0){
^
Solution.java:31: error: 'else' without 'if'
else{
^
Solution.java:37: error: illegal start of expression
)
^
Solution.java:38: error: 'else' without 'if'
else{
^
6 errors
这是代码:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] expDate = new int[3] ;
int[] givDate = new int[3] ;
for(int i=0;i<3;i++){
givDate[i]=input.nextInt();
}
for(int j=0;j<3;j++){
expDate[j]=input.nextInt();
}
int fine = testForStuff(givDate,expDate);
System.out.println(fine);
}
public static int testForStuff(int givDate[],int expDate[]){
int fine=0;
if((givDate[2]-expDate[2]) == 0) (
if((givDate[1]-expDate[1])>0){
fine = 500*(givDate[1]-expDate[1]);
}
else{
fine = 15*(givDate[0]-expDate[0]);
}
)
else{
fine = 10000;
}
return fine;
}
}
最佳答案
您正在使用()
括号,而应该使用{}
大括号。
if((givDate[2]-expDate[2]) == 0) ( // invalid: parenthesis
if((givDate[1]-expDate[1])>0){
fine = 500*(givDate[1]-expDate[1]);
}
else{
fine = 15*(givDate[0]-expDate[0]);
}
) // invalid: parenthesis
应该
if((givDate[2]-expDate[2]) == 0) { // curly braces
if((givDate[1]-expDate[1])>0){
fine = 500*(givDate[1]-expDate[1]);
}
else{
fine = 15*(givDate[0]-expDate[0]);
}
} // curly braces
关于java - 编译Java文件时出错(数组,嵌套if语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347374/