2016-04-09 5 views
-3

Я не могу понять, почему я получаю эту ошибкуОшибка: «)» ожидалось ошибка компилятора

Math.java:6: error: ')' expected 
     if(args[1].equalsIgnoreCase("+") 
             ^
Math.java:11: error: ')' expected 
       else if(args[1].equalsIgnoreCase("x") 
                ^
Math.java:16: error: ')' expected 
       else if(args[1].equalsIgnoreCase("-") 
                ^
Math.java:21: error: ')' expected 
       else if(args[1].equalsIgnoreCase("/") 
                ^
4 errors 

Мой код

class Math 
{ 
    public static void main(String args[]) 
    { 
     if(args[1].equalsIgnoreCase("+") 
     { 
     sum = Integer.parseInt(args[0]) + Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("x") 
     { 
     sum = Integer.parseInt(args[0]) * Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("-") 
     { 
     sum = Integer.parseInt(args[0]) - Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("/") 
     { 
     sum = Integer.parseInt(args[0])/Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else 
     { 
     System.out.println("Something seems to be wrong, please try again."); 
     } 

    } 
} 

Когда я пытаюсь ввести закрывающие parenthesizes, где он говорит, что они должны идти, у него больше ошибок. Может ли кто-нибудь дать мне краткое описание того, что вызывает эту ошибку. Я просто пытаюсь создать программу с математикой, основанную на аргументах, введенных в командную строку при запуске программы.

Например, если я ввел «java Math 1 + 1», это решило бы эту проблему и выплюнул «Ответ на вопрос 2».

Любая помощь, которую вы, ребята, можете предложить на этом, будет весьма признательна.

+1

Вы пропускаете ')' на каждой из этих линий. Тот факт, что их добавление дает * другие * ошибки, не означает, что их не должно быть. – Biffen

+2

вы не указали 'sum' нигде. – SomeJavaGuy

ответ

0

Есть две ошибки, вы не определили сумму, а также, если вам не хватает парантеса при каждом условии.

public static void main(String args[]) 
{ 
    int sum = 0; // you had do define sum 
    if(args[1].equalsIgnoreCase("+")) // one closing missing 
    { 
     sum = Integer.parseInt(args[0]) + Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("x")) // one closing missing 
    { 
    sum = Integer.parseInt(args[0]) * Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("-")) // one closing missing 
    { 
    sum = Integer.parseInt(args[0]) - Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("/")) // one closing missing 
    { 
    sum = Integer.parseInt(args[0])/Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else 
    { 
    System.out.println("Something seems to be wrong, please try again."); 
    } 

} 
0

Хорошо, давайте пошагово. Ошибка «)» ожидается почему вы забыли закрыть «(» из, если:

if(args[1].equalsIgnoreCase("+")) 

... и так далее, для каждого, если плюс, вы не определили сумму в любом месте,. это еще одна ошибка, которую вы будете сталкиваться.

2

вы пропустили ) для каждого if состояния, а также вы не определили sum.

class Math 
{ 
    public static void main(String args[]) 
    { 
     int sum; 
     if(args[1].equalsIgnoreCase("+")) 
     { 
     sum = Integer.parseInt(args[0]) + Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("x")) 
     { 
     sum = Integer.parseInt(args[0]) * Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("-")) 
     { 
     sum = Integer.parseInt(args[0]) - Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else if(args[1].equalsIgnoreCase("/")) 
     { 
     sum = Integer.parseInt(args[0])/Integer.parseInt(args[2]); 
     System.out.println("The answere is : " + sum); 
     } 
     else 
     { 
     System.out.println("Something seems to be wrong, please try again."); 
     } 
    } 
} 
0
class Math { 
public static void main(String args[]) 
{ 
    if(args[1].equalsIgnoreCase("+")) 
    { 
    sum = Integer.parseInt(args[0]) + Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("x")) 
    { 
    sum = Integer.parseInt(args[0]) * Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("-")) 
    { 
    sum = Integer.parseInt(args[0]) - Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else if(args[1].equalsIgnoreCase("/")) 
    { 
    sum = Integer.parseInt(args[0])/Integer.parseInt(args[2]); 
    System.out.println("The answere is : " + sum); 
    } 
    else 
    { 
    System.out.println("Something seems to be wrong, please try again."); 
    } 

} } 

Это должно решить вашу проблему. Вы должны убедиться, что каждый кронштейн закрыт. Я думаю, вам нужно использовать лучшую IDE.

1

you are not completing if() statement complete if statement and use this for compare

if(Character.toLowerCase(arg[1])==Character.toLowerCase('+')){ 
} 

или вы можете использовать метод Switch()

Смежные вопросы