0

ユーザー入力を通じて図形を表示し、ウィンドウに出力するプログラムを作成しようとしています。形状とグラフィックウィンドウを定義する別のクラスがありますが、形状のユーザー入力を取得する方法がわかりません。私はJavaとOOP全般に不慣れです。これまでの私のコードは次のとおりです。

import java.util.Scanner;

public class Input {
    public static void main(String [] args) {
        GraphicsScreen g = new GraphicsScreen();
        Scanner s = new Scanner(System.in);
        int val1 = 0;
        int val2 = 0;
        String line; 
        String [] sut;
        System.out.println("Please enter your commands here. Type 'end' to quit.");
        line = s.nextLine();

        while ( line.equalsIgnoreCase("end"));

        sut = line.split(", ");
        line = sut [0];
        if (sut.length > 1) {
            val1 = Integer.parseInt(sut[1]);
            if (sut.length > 2) {
                val2 = Integer.parseInt(sut[2]);
            }
        }
        if (line.equals("moveTo" + val1 + val2)) {
            g.moveTo(val1, val2);
        }
        else if (line.equals("lineTo" + val1 + val2)) {
            g.lineTo(val1, val2);
        }
        else if (line.equals("circle" + val1)) {
            g.circle(val1);
        }
        else {
            System.out.println("The commands you have entered are invalid. Please try again.");
        }   
    }
}

基本的に、上部に定義されている int は値に設定する必要があります。そうしないと、Eclipse がコンパイラ エラーを返すので、それらをゼロに設定します。最後の IF ステートメントでは、最後に値を連結しようとしましたが、これは明らかに値がゼロの形状になります。

val1ユーザーが定義し、val2その結果をウィンドウに出力するように、これを変更するにはどうすればよいですか?

4

1 に答える 1

2
if (line.equals("moveTo" + val1 + val2)) {
    g.moveTo(val1, val2);
}

これだけじゃないはず

if (line.equals("moveTo")) {
    g.moveTo(val1, val2);
}

あなたはすでにカンマでラインアップを壊しています.

于 2012-11-02T00:04:38.947 に答える