正しい入力が入力されるまでユーザーに進行を許可しない方法は?

Nexus_Valentine:

以下のプログラムでは、ユーザーに3文字だけ入力してもらいます。私のプログラムは誤った入力を検出しますが、ユーザーに正しい入力を入力するように継続的に要求しません。たとえば文字の代わりに数字が入力された場合は、代わりに2番目に要求された入力に移動します。

私の質問は、正しい入力が入力されるまでこのプログラムをループさせるにはどうすればよいですか?

また、コードを簡略化できますか?input1 input2とinput3に同じ条件があるので、私がしたことではなく、単一のステートメントで条件を指定する方法はありますか?

public static void main(String[] args) 

{
    Scanner scnObj = new Scanner(System.in);
    System.out.println("enter 3 letters");
    String input1 = scnObj.nextLine();
    if(!Pattern.compile("[a-zA-Z]*").matcher(input1).matches()){
        System.out.println("try again.");
    }
    else {
        System.out.println("enter the 2nd");
    }
    String input2 = scnObj.nextLine();
    if(!Pattern.compile("[a-zA-Z]*").matcher(input2).matches()){
        System.out.println("Please try again.");
    }
    else {
        System.out.println("enter the 3rd");
    }
    String input3 = scnObj.nextLine();
    if(!Pattern.compile("[a-zA-Z]*").matcher(input3).matches()){
        System.out.println("try again.");
    }
    scnObj.close();
}

}

Arvind Kumar Avinash:

次のようにしてください:

import java.util.Scanner;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Scanner scnObj = new Scanner(System.in);
        System.out.println("enter 3 letters");
        String input1;
        do {
            input1 = scnObj.nextLine();
            if ((!Pattern.compile("[a-zA-Z]*").matcher(input1).matches())) {
                System.out.println("try again");
            }
        } while (!Pattern.compile("[a-zA-Z]*").matcher(input1).matches());

        System.out.println("enter the 2nd");
        String input2;
        do {
            input2 = scnObj.nextLine();
            if ((!Pattern.compile("[a-zA-Z]*").matcher(input2).matches())) {
                System.out.println("try again");
            }
        } while (!Pattern.compile("[a-zA-Z]*").matcher(input2).matches());

        System.out.println("enter the 3rd");
        String input3;
        do {
            input3 = scnObj.nextLine();
            if ((!Pattern.compile("[a-zA-Z]*").matcher(input3).matches())) {
                System.out.println("try again");
            }
        } while (!Pattern.compile("[a-zA-Z]*").matcher(input3).matches());

        scnObj.close();
    }
}

サンプル実行:

enter 3 letters
1
try again
2
try again
a
enter the 2nd
w
enter the 3rd
4
try again
5
try again
p

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ユーザーからのコンソール入力を許可しながらNSTimerを実行するにはどうすればよいですか?

分類Dev

正しい入力が受信されるまで、誤ったユーザー入力を無視します

分類Dev

正しい入力文字列が入力されるまでPythonループを実行する方法

分類Dev

ユーザー入力が正しくない場合に質問をループさせる方法

分類Dev

改行文字またはスペースが「のみ」入力されるまで入力を取得する方法?基本的に、入力として何も入力しないまでループを実行する方法は?

分類Dev

初期サイズなしで配列のユーザー入力を許可するにはどうすればよいですか?

分類Dev

ユーザーがJavaに正しい入力を入力するまで、ユーザーから入力を取得するにはどうすればよいですか?

分類Dev

余分な0が削除されないように、ユーザーが入力した数値の長さを維持する方法はありますか?

分類Dev

ユーザーの入力が正しいと認識されないのはなぜですか?

分類Dev

EditTextでのユーザー入力を無効にしますが、プログラムによる入力は許可します

分類Dev

ユーザーにazの入力のみを許可し、ifステートメントを使用して正しい入力を促す方法

分類Dev

Javascriptがフォームを正しく検証していません。ユーザー入力なしでアラートが表示される

分類Dev

ユーザーが12より大きい数字を入力することを許可しない

分類Dev

Reactjsでエラーが発生します。Unhandled Rejection(TypeError)と表示されます。しかし、ユーザーが入力に無効な名前を入力した場合の対処方法については、すでに説明しました

分類Dev

ユーザー入力を整数に変換しているときにエラーが発生します。正しい方法は何ですか?

分類Dev

Javaで正しいユーザー入力を求め続ける方法は?

分類Dev

jquery を使用してユーザー名またはパスワードが正しく入力されていない場合にのみエラー メッセージを表示するにはどうすればよいですか?

分類Dev

入力した値が正しくない場合にユーザーをTextBoxに制限する方法

分類Dev

C ++でのユーザー入力が特定の事前定義されたベクトルにあるかどうかを確認し、そうでない場合は入力を再入力するようにユーザーに指示する方法はありますか?

分類Dev

ユーザーが正しいユーザー名とパスワードを入力するまでプログラムをループさせる方法

分類Dev

ユーザーが入力した値をdfのさまざまな列に追加するにはどうすればよいですか?

分類Dev

ajax呼び出しが発信され、新しいデータが返されるときにユーザー入力を防止または処理する方法

分類Dev

JTextAreaに入力されたテキストの高さをユーザーが入力している間に取得する方法は?

分類Dev

tkinterでユーザー入力を許可するにはどうすればよいですか?

分類Dev

ユーザーがC ++で入力しているときに、ユーザーの入力を確認するにはどうすればよいですか?

分類Dev

Java:ユーザーが新しい値を入力するたびに入力された一意の値の完全なセットを表示します

分類Dev

ユーザーが入力した入力をチェックするこのコードが正しく機能しないのはなぜですか?

分類Dev

私のコードは、ユーザー入力を許可する代わりにそれ自体を繰り返しています

分類Dev

段落にさまざまなユーザー入力を入れる方法は?

Related 関連記事

  1. 1

    ユーザーからのコンソール入力を許可しながらNSTimerを実行するにはどうすればよいですか?

  2. 2

    正しい入力が受信されるまで、誤ったユーザー入力を無視します

  3. 3

    正しい入力文字列が入力されるまでPythonループを実行する方法

  4. 4

    ユーザー入力が正しくない場合に質問をループさせる方法

  5. 5

    改行文字またはスペースが「のみ」入力されるまで入力を取得する方法?基本的に、入力として何も入力しないまでループを実行する方法は?

  6. 6

    初期サイズなしで配列のユーザー入力を許可するにはどうすればよいですか?

  7. 7

    ユーザーがJavaに正しい入力を入力するまで、ユーザーから入力を取得するにはどうすればよいですか?

  8. 8

    余分な0が削除されないように、ユーザーが入力した数値の長さを維持する方法はありますか?

  9. 9

    ユーザーの入力が正しいと認識されないのはなぜですか?

  10. 10

    EditTextでのユーザー入力を無効にしますが、プログラムによる入力は許可します

  11. 11

    ユーザーにazの入力のみを許可し、ifステートメントを使用して正しい入力を促す方法

  12. 12

    Javascriptがフォームを正しく検証していません。ユーザー入力なしでアラートが表示される

  13. 13

    ユーザーが12より大きい数字を入力することを許可しない

  14. 14

    Reactjsでエラーが発生します。Unhandled Rejection(TypeError)と表示されます。しかし、ユーザーが入力に無効な名前を入力した場合の対処方法については、すでに説明しました

  15. 15

    ユーザー入力を整数に変換しているときにエラーが発生します。正しい方法は何ですか?

  16. 16

    Javaで正しいユーザー入力を求め続ける方法は?

  17. 17

    jquery を使用してユーザー名またはパスワードが正しく入力されていない場合にのみエラー メッセージを表示するにはどうすればよいですか?

  18. 18

    入力した値が正しくない場合にユーザーをTextBoxに制限する方法

  19. 19

    C ++でのユーザー入力が特定の事前定義されたベクトルにあるかどうかを確認し、そうでない場合は入力を再入力するようにユーザーに指示する方法はありますか?

  20. 20

    ユーザーが正しいユーザー名とパスワードを入力するまでプログラムをループさせる方法

  21. 21

    ユーザーが入力した値をdfのさまざまな列に追加するにはどうすればよいですか?

  22. 22

    ajax呼び出しが発信され、新しいデータが返されるときにユーザー入力を防止または処理する方法

  23. 23

    JTextAreaに入力されたテキストの高さをユーザーが入力している間に取得する方法は?

  24. 24

    tkinterでユーザー入力を許可するにはどうすればよいですか?

  25. 25

    ユーザーがC ++で入力しているときに、ユーザーの入力を確認するにはどうすればよいですか?

  26. 26

    Java:ユーザーが新しい値を入力するたびに入力された一意の値の完全なセットを表示します

  27. 27

    ユーザーが入力した入力をチェックするこのコードが正しく機能しないのはなぜですか?

  28. 28

    私のコードは、ユーザー入力を許可する代わりにそれ自体を繰り返しています

  29. 29

    段落にさまざまなユーザー入力を入れる方法は?

ホットタグ

アーカイブ