>

이 코드 블록을 작업 중입니다 :

   while (!userCorrect) {
        Scanner input = new Scanner(System.in);
        System.out.print("Guessing (round " + roundNumber1++ + "): Choosing your letter from a-z: ");
            String letter = input.nextLine();
            if (letter.length () > 1) {
                System.out.println("You should not enter more than 1 character");
                } 

        System.out.println("end of (round " + roundNumber2++ + ")");
    }
    }

내가하려고하는 것은 사용자가 1 문자 이상을 입력하면 코드는 다음으로 돌아갑니다.

System.out.print ( "추천 (라운드"+ roundNumber1 ++ + ") : a-z에서 편지 선택 :");

1 자만 선택하고 2 라운드로 이동할 때까지

예. 라운드 1이고 사용자가 az를 입력한다고 가정합니다. 하나 이상의 문자를 입력하면 안된다는 오류가 발생합니다.

추천 (라운드 1) : a-z에서 캐릭터 선택 :

어떤 아이디어? 작동하지만 다음 라운드로 건너 뛰고 유효한 입력이 될 때까지 동일한 라운드에 머물기를 원합니다. 몇 시간 동안 검색했는데 작동하지 않습니다.


  • 답변 # 1

    유효한 입력을받은 후에 만 ​​증가:

    boolean userCorrect = false;
    int roundNumber = 1;  // starting round
    while (!userCorrect) {
        Scanner input = new Scanner(System.in);
        System.out.print("Guessing (round " + roundNumber + "): Choosing your letter from a-z: ");
        String letter = input.nextLine();
        if (letter.length () > 1) {
            System.out.println("You should not enter more than 1 character");
        }
        else{
            System.out.println("end of (round " + roundNumber + ")");
            roundNumber++;       // now increment
        }
    }
    
    
    이 루프는 userCorrect = true 를 설정할 때까지 계속됩니다.  루프 내 어딘가에.

  • 답변 # 2

    아래처럼 사용할 수 있습니다

    while (!userCorrect) {
            Scanner input = new Scanner(System.in);
            System.out.print("Guessing (round " + roundNumber1 + "): Choosing your letter from a-z: ");
                String letter = input.nextLine();
                if (letter.length () > 1) {
                    System.out.println("You should not enter more than 1 character");
                    continue;
                    } 
            System.out.println("end of (round " + roundNumber1 + ")");
            roundNumber1++;
        }
    
    

  • 답변 # 3

    계속해서 키워드를 루프의 맨 위로 강제하는 continue 키워드를 사용하는 또 다른 방법이 있습니다. 이 구현을 사용하여, 원하는 경우 done을 true로 설정하면됩니다.

       public static void main(String[] args)
            {
                Scanner input = new Scanner(System.in);
                int roundNumber = 1;
                boolean done = false;
                do
                {
                    System.out.println("Guessing (round " + roundNumber + "): Choosing your letter from a-z: ");
                    String letter = input.nextLine();
                    if(letter.length() > 1)
                    {
                        System.out.println("You should not enter more than 1 character");
                        continue;
                    }
                    else
                    {
                        roundNumber++;
                    }
                    //Set done to true based on some condition
                }while(!done);
            }
            //end main
    
    

관련 자료

  • 이전 php - 무료 워드 프레스 테마에서 섹션 재정렬
  • 다음 PHP/HTML 속성 내에서 OOP 방법을 어떻게 에코합니까?