0

私は Java を学んでいて、小さな電卓の作成に取り組んでいます。計算機に合計を表示させたい時点で等号を押すまで、任意の桁数を入力できるようにするものを書いています。

Scanner input = new Scanner (System.in):デバッグ中にデバッガーで「ソースが見つかりません」と表示されるまでしか取得できないため、スキャナーに問題があると思います。これは特に、同じプロジェクト内で他のクラスの 2 つのスキャナーをまったく問題なく使用しているため、非常に奇妙です。お分かりのように、私はこの作品に 2 つのスキャナーを使用していましたが、これは機能しないはずだと読んだので、現在は 1 つを使用しています。これがコードです...

package Calculator;

import java.util.Scanner;

public class Calculator3 {

    public static void main(String[] args) {

        Scanner input = new Scanner (System.in);
    //  Scanner opin = new Scanner (System.in);     
        String operative = input.next();        
        double numb = input.nextDouble();
        int answer = 0;
        int calc = 1;

        System.out.print("#######################################" + "\n");             
        while (operative.equalsIgnoreCase("="))
            {
            System.out.print("Interger " + calc + " :");
            System.out.print("Type your Operative :");
            if (operative.equals("+")) 
                answer += numb;
            {
                if (operative.equals("-")) 
                    answer -= numb;
                    {
                        if (operative.equals("/")) 
                            answer /= numb;
                            {
                                if (operative.equals("*")) 
                                    answer *= numb;
                                {
                                }
                            }
                    }
            }
        calc += 1;  
            }
        System.out.print("#######################################" + "\n");     
        System.out.println("Your answer is: " + answer + ".");
}
}
4

1 に答える 1

0

コードの問題は、operativeが更新されておらず、おそらく=最初の読み取り後に更新されていないことです。このため、ループは終了せず、print ステートメントに到達しません。ロジックに従って、ループに read ステートメントを追加する必要があります。また、を使用することをお勧めしswitchます。これにより、読みやすく、保守が容易になります。

また、デバッグ中に、デバッガーがソースを検出できないクラスに対して「ソースが見つかりません」というメッセージが表示されることに注意してください。おそらく、JDK 構成にソース エントリがありません。Eclipse を使用している場合、JDK 構成を修正するために確認する必要があることの詳細については、この回答を参照してください。

于 2012-11-06T23:52:47.730 に答える