2017-05-07 10 views
2

私はこのコードをJavaで書いて非常に簡単な電卓を作成しました。私はJavaで初心者だと私は、エラーメッセージは何を意味するのか、非常にわからないんだけどJavaで電卓を作成しようとすると、これらのエラーが発生しました:どうすれば修正できますか?

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Syntax error on token ")",) expected after this token 
The method Addition() is undefined for the type Calculate 
Syntax error on token ")",) expected after this token 
The method Subtraction() is undefined for the type Calculate 
Syntax error on token ")",) expected after this token 
The method Mutliplication() is undefined for the type Calculate 
Syntax error on token ")",) expected after this token 
The method Division() is undefined for the type Calculate 

at Calculate.main(Calculate.java:14) 

:私はそれを実行しようとしたとき

import java.util.Scanner; 

public class Addition { 

static void Addition() { 
    Scanner numberOne = new Scanner(System.in); 
    float x = numberOne.nextFloat(); 
    System.out.println("First Number: " + numberOne.nextLine()); 
    Scanner numberTwo = new Scanner(System.in); 
    float y = numberTwo.nextFloat(); 
    System.out.println("Second Number: " + numberTwo.nextLine()); 
    float sum = x + y; 
    System.out.println(sum);  
    } 
} 

public class Subtraction { 

static void Subtraction() { 
    Scanner numberOne = new Scanner(System.in); 
    float x = numberOne.nextFloat(); 
    System.out.println("First Number: " + numberOne.nextLine()); 
    Scanner numberTwo = new Scanner(System.in); 
    float y = numberTwo.nextFloat(); 
    System.out.println("Second Number: " + numberTwo.nextLine()); 
    float difference = x - y; 
    System.out.println(difference); 
    } 
} 

public class Multiplication { 

static void Multiplication() { 
    Scanner numberOne = new Scanner(System.in); 
    float x = numberOne.nextFloat(); 
    System.out.println("First Number: " + numberOne.nextLine()); 
    Scanner numberTwo = new Scanner(System.in); 
    float y = numberTwo.nextFloat(); 
    System.out.println("Second Number: " + numberTwo.nextLine()); 
    float product = x + y; 
    System.out.println(product);  
    } 
} 

public class Division { 

static void Addition() { 
    Scanner numberOne = new Scanner(System.in); 
    float x = numberOne.nextFloat(); 
    System.out.println("First Number: " + numberOne.nextLine()); 
    Scanner numberTwo = new Scanner(System.in); 
    float y = numberTwo.nextFloat(); 
    System.out.println("Second Number: " + numberTwo.nextLine()); 
    float quotient = x + y; 
    System.out.println(quotient); 
} 
} 

public class Calculate { 
    public static void main(String[] args) { 
    System.out.println("Calculator"); 
    System.out.println("Choose an operation:"); 
    System.out.println("Addition"); 
    System.out.println("Subtraction"); 
    System.out.println("Multiplication"); 
    System.out.println("Division"); 
    Scanner input = new Scanner(System.in); 
    String choice = input.nextLine(); 
    if(choice.equals("Addition") { 
     Addition(); 
    } 
    else if(choice.equals("Subtraction") { 
     Subtraction(); 
    } 
    else if(choice.equals("Mutliplication") { 
     Mutliplication(); 
    } 
    else if(choice.equals("Division"){ 
     Division(); 
    } 
    else { 
     System.out.println("That wasn't a valid input. Please try again."); 
    } 
} 
} 

しかし、私は、このエラーメッセージが表示されました。誰かが私にそれが意味することと私がそれをどのように修正するかを説明することができますか?

+0

ありがとうございました。私は変更を加え、今プログラムが動作します。私がやりたいことが一つだけあります。ユーザーが無効な入力をした場合は、質問全体を繰り返すことなく、もう一度やり直すことができます。彼らが4つの選択肢以外のものを与えた場合と同様に、私は彼らにただちに答えることができるようにして、有効な入力である何かに答えるまでこれを繰り返すことを望みます。 –

答えて

1

あなたのコード内でいくつかの問題を持っています。

まず、メソッドごとに別々のクラスは必要ありません。すべてのメソッドを同じクラスにまとめるだけです。こうすることで、各メソッドを呼び出すときにクラス名を指定する必要がなくなります。

第2に、ifの文には)文字が欠落しています。各(の文字に一致する)があることを確認します。たとえば、if (choice.equals("Addition")) {です。

第3に、乗算と除算の方法は実際に加算を行っているようです。 2つの数値を掛けるには*を使用し、それらを分割するには/を使用してください。

第4に、nextLine()への呼び出しの一部を失って、すでに取得した値を印刷してください。たとえば、System.out.println("First Number: " + numberOne.nextLine());System.out.println("First Number: " + x);であり、同様に何度もコード内にあるはずです。

1

Additionという名前のクラスにAdditionメソッドを定義しました。 Addition.Addition()

  1. import static Addition.Addtion();

  2. 変更Addition()

他の方法でも同じ操作を行う必要があります。 choise試験にも)がありません。

if(choice.equals("Addition")) { // <-- count the open and close parens. 
0

Calculateクラスの本文では、if文のヘッダーを正しく閉じていません。

if(choice.equals("Addition") { 

は、あなたが持っているすべての開いているいずれかの決算parentheseeを配置する必要があり

if(choice.equals("Addition")) { // notice the second closing parenthesee 

でなければなりません。

0

if文に必要な閉じ括弧を追加しなかった構文エラーがありました。

if(choice.equals("Addition") <---- missing parenthesis { 
    Addition(); 
} 

ソリューション

if(choice.equals("Addition")) { 
    Addition(); 
} 
else if(choice.equals("Subtraction")) { 
    Subtraction(); 
} 
else if(choice.equals("Mutliplication")) { 
    Mutliplication(); 
} 
else if(choice.equals("Division")){ 
    Division(); 
} 
else { 
    System.out.println("That wasn't a valid input. Please try again."); 
} 
0

Mainは自分のクラスに加算や減算などのメソッドを配置しているため、Mainはそれらを呼び出す方法を知らないためです。

私は、各算術メソッドの前にあるパブリッククラスを取り除くと言うでしょう。あなたはそれが実際にそれぞれの数字を吐き出すしたい場合は

System.out.println("Second Number: " + y); 

:また何かにあなたの

System.out.println("Second Number: " + numberTwo.nextLine()); 

を変更。

関連する問題