1

私はJavaプログラミングの初心者で、アドバイスを探しています。私は、ユーザーにコマンドを入力するように求める非常に単純なプログラム/アプリケーションを作成しました。コマンドは、ユーザーが指定した場所、サイズ、色でグラフィック画面に基本的な形状を表示します。

スキャナークラスを使用して、キーボードからユーザー入力を取得しました(たとえば、ユーザータイプが100 150に移動し、グラフィックス画面のペンがX = 100、Y = 150に移動するか、 circle 100と入力して、指定したx、yで円の半径100を表示します座標)

ユーザーが間違ったコマンドを入力した場合、何も入力しようとしなかった場合、またはランダムなキーストロークを入力しようとした場合(たとえば、コマンドのスペルを間違えた場合、またはコマンドに十分な値を指定しなかった場合)、エラーメッセージを返したいです。

現時点では、プログラムがクラッシュし、再起動する必要があります

import java.util.Scanner;


public class Assign1 {


public final static void main(String [] args) {

    System.out.println("Let's draw something on the screen!");

    GraphicsScreen graphics = new GraphicsScreen();

Scanner input = new Scanner(System.in); // used to read the keyboard

    String next;    // stores the next line input
    String[] one;

    do {
        System.out.print("Enter a command (\"stop\") to finish : ");
        System.out.print("Type 'help' for a list of commands ");
        next = input.nextLine();
        one = next.split(" ");

        String command = one[0];

        if(next.contains("help")) {
            System.out.println("Type 'move' followed by an X and Y co-ordinate to move the graphical pointer.");
            System.out.println("Type 'circle' followed by a radius value to output a circle.");
            System.out.println("Type 'line' followed by an X and Y co-ordinate to draw a line.");
            System.out.println("Type 'clear' to reset the graphical canvas.");
        }


        if(next.contains("move")) {

            int x = 0;

            int y = 0;

            x = Integer.parseInt(one[1]);

            y= Integer.parseInt(one[2]);

            graphics.moveTo(x, y);

        } 



        if( command.equalsIgnoreCase("circle")) {


            int radius = 0;


            radius = Integer.parseInt(one[1]);


            graphics.circle(radius);

        } 


        if(command.equalsIgnoreCase("line")) {

            int x = 0;
            int y = 0;

            x = Integer.parseInt(one[1]);

            y= Integer.parseInt(one[2]);

            graphics.lineTo(x,y);

        }


        if(next.contains("clear")) {
            graphics.clear();
        }

    } while ( next.equalsIgnoreCase("stop") == false );

    System.out.println("You have decided to stop entering commands. Program terminated!");

    graphics.close();

グラフィックス画面に必要なすべてのコードが、という別のドキュメントにあります。

graphicscreen.java

特定のコマンドの1つ以外が入力された場合に、ユーザーのテキスト入力を検証してエラーメッセージを表示する方法の提案を探しています。

さまざまなWebページで見つけたifステートメントやwhileループなどを使用してみましたが、まだ機能していません。

どんな提案でも大歓迎です。

4

2 に答える 2

0

使用nested if-elseではなくonly if

 if(command1istrue){
  }
else if(command2istrue){

 }
else if(command3istrue){
}
else {
system.out.println("Error you have entered the wrong command");
}

ここをチェック

于 2012-10-31T20:53:52.197 に答える
0

とを使用else ifelseます。else if条件は、それより上のすべてのifandelse if条件が に評価された場合にのみチェックされfalseます。elseブロックは、それより上のすべてのifandelse if条件が に評価された場合にのみ実行されfalseます。

if(next.contains("move")) {
} 
else if( command.equalsIgnoreCase("circle")) {
} 
else if(command.equalsIgnoreCase("line")) {
}
else if(next.contains("clear")) {
}
else {
 //input invalid
}
于 2012-10-31T20:54:25.053 に答える