0

noobの質問でごめんなさい。これは、Javaプログラミングを試す最初の日です。ユーザーが整数で使用したい演算子のユーザー入力を取得するのに助けが必要です。

import java.util.Scanner;

public class calculator {

    public static void main (String args[]) {

        Scanner number = new Scanner(System.in);
        double num1,num2,answer;
        char operator;

        System.out.println("Enter first number: ");
        num1 = number.nextDouble();

        operator = number.nextChar(); /* the "nextChar" is not correct */

        System.out.println("Enter second number: ");
        num2 = number.nextDouble();

        if (operator = '+'){
            answer = num1 + num2; /* If statements do not work like this */
        }                             /* I would use "else if", unsure if it allows */
        if (operator = '-'){
            answer = num1 - num2;
        }
        if (operator = '*'){
            answer = num1 - num2;
        }
        if (operator = '/'){
                answer = num1 / num2;
        }

        System.out.println(num1 + num2 + operator + answer);

    }
}

編集されたバージョン:

import java.util.Scanner;

public class calculator{

    public static void main (String args[]) {

        Scanner userInput = new Scanner(System.in);

        String operator;
        double num1,num2,answer = 0;



        System.out.println("Enter first number: ");
        num1 = userInput.nextDouble();

        System.out.println("Enter operator: ");
        operator = userInput.next();


        System.out.println("Enter second number: ");
        num2 = userInput.nextDouble();

        if (operator.equals ("+")){
            answer = num1 + num2;
        }
        else if (operator.equals ("-")){
            answer = num1 - num2;
        }
        else if (operator.equals ("*")){
            answer = num1 * num2;
        }
        else if (operator.equals ("/")){
                answer = num1 / num2;
        }

        System.out.println("First number:" + num1);
        System.out.println("Operator:" + operator);
        System.out.println("Second number:" + num2);

        System.out.println("Answer: " + answer);
    }
}

最初の番号:10.0

オペレーター:*

2番目の番号:3.14

回答:31.400000000000002

どうもありがとう!とても助かりました!

4

4 に答える 4

0

他の人がすでに指摘しているように、==演算子を使用して等しいかどうかを確認します。代わりに、=演算子が値を割り当てます。

から1文字を読み取るにはScanner、次の質問を参照してください。文字を取得するためのスキャナーメソッドScanner.findInLine()そこには、引数として正規表現を受け取るメソッドを使用するための提案があります。ワイルド.カード文字をパターンとして指定すると、次の1文字の文字列を取得でき、それを使用charAt(0)すると、として取得できますchar

Scanner sc = new Scanner("abc");
char ch = sc.findInLine(".").charAt(0);
System.out.println(ch); // prints "a"

もちろん、Scanner.next()次の単語を文字列として取得し、その最初の文字を取得するために使用することもできます。ただし、そうすると、残りの単語が入力バッファから破棄されることを考慮に入れてください。

于 2013-01-31T10:58:44.287 に答える
0

=ではなく==を比較に使用します(つまり、割り当てを意味します)。

于 2013-01-31T10:55:53.417 に答える
0

Ok。これは機能し、Javaへの道であなたを助けることができます

public class Tester4 {

    public static void main(String args[]) {

        Scanner input = new Scanner(System.in);
        double num1, num2, answer = 0;
        String operator;

        System.out.println("Enter first number: ");
        num1 = input.nextDouble();

        System.out.println("Enter operator: ");
        operator = input.next();

        System.out.println("Enter second number: ");
        num2 = input.nextDouble();

        if(operator.equals("+")) {
            answer = num1 + num2;
        } else if(operator.equals("-")) {
            answer = num1 - num2;
        } else if(operator.equals("*")) {
            answer = num1 - num2;
        } else if(operator.equals("/")) {
            answer = num1 / num2;
        }

        System.out.println("First number:" + num1);
        System.out.println("Operator:" + operator);
        System.out.println("Second number:" + num2);

        System.out.println("Answer: " + answer);
    }

}
于 2013-01-31T11:11:18.257 に答える
-1

あなたが使用する必要があります

if (operator == '+') 

'doubleequalto'に注意してください。

于 2013-01-31T10:56:52.213 に答える