Varsayılanı alırlarsa anahtar durumumu tekrar geri almaya çalışıyorum

Aug 16 2020
    //Choice of choosing a dog or a cat

     String pet = input.next();

    switch (pet.charAt(0)) {
        case 'a' -> {
            System.out.println("What is your dog's name? ");
            String dogsName = input.next();
            System.out.println("Your Character's Name is: " + playerName + "\nYour Pet's Name is: " + dogsName);
        }
        case 'b' -> {
            System.out.println("What is your cat's name? ");
            String catsName = input.next();
            System.out.println("Character Name: " + playerName + "\nPet Name: " + catsName);
        }
        default -> System.out.println("That is not a valid option. Please choose again.");
    }

   input.close();

}

Kullanıcı seçeneklerden birini kullanarak cevap verene kadar tekrar tekrar a durumuna geri getirecek bir döngü bulamıyorum. Herhangi bir yardım harika olurdu! Teşekkürler

Yanıtlar

1 LoveshDongre Aug 17 2020 at 05:21

do whileDöngü kullanmak , bunu çözmenin basit bir yoludur.

repeatKontrol etmek için bir değişken kullandım , girişi tekrar sormam gerekip gerekmediğini

Ayrıca, şimdi başka bir dava (diyelim eklemek bile Eğer bu notu case 'c') benim için koşulu değiştirmek gerekmez do whiledöngü

boolean repeat;
do {
    String pet = input.next();
    repeat = false;
    switch (pet.charAt(0)) {
        case 'a' -> {
            System.out.println("What is your dog's name? ");
            String dogsName = input.next();
            System.out.println("Your Character's Name is: " + playerName + "\nYour Pet's Name is: " + dogsName);
        }
        case 'b'-> {
            System.out.println("What is your cat's name? ");
            String catsName = input.next();
            System.out.println("Character Name: " + playerName + "\nPet Name: " + catsName);
        }
        default: System.out.println("That is not a valid option. Please choose again.");
        repeat = true;
    }
} while(repeat);
input.close();
AnveshK Aug 17 2020 at 05:24

Döngü iyi bir çözümdür ancak java'da resesif yöntemleri de kullanabilirsiniz.

public static void main(String[] args) {
    
        Scanner input = new Scanner(System.in);
    
    
        System.out.println("    Welcome To The Choices Game...    ");
        System.out.println("Please enter your name: " );
    
        String playerName = input.nextLine();
    
        System.out.println("What is " + playerName + "'s" + " favorite pet?");
        System.out.println("a. Dog \nb. Cat");
    
        //Choice of choosing a dog or a cat
    
        method();
   
    
      input.close();
    
 }

public void method()
{

         String pet = input.next();
    
        switch (pet.charAt(0)) {
            case 'a' -> {
                System.out.println("What is your dog's name? ");
                String dogsName = input.next();
                System.out.println("Your Character's Name is: " + playerName + "\nYour Pet's Name is: " + dogsName);
            }
            case 'b' -> {
                System.out.println("What is your cat's name? ");
                String catsName = input.next();
                System.out.println("Character Name: " + playerName + "\nPet Name: " + catsName);
            }
            default -> System.out.println("That is not a valid option. Please choose again.");
            method();
        }
       
}
Srinjoy_Chatterjee37 Aug 17 2020 at 05:11

Anahtar durumu bölümünün tamamını döngüye almak için, onu bir do-while döngüsüne koymayı deneyebilirsiniz. Do-while bloğuyla kullanılacak koşula gelince şunları deneyebilirsiniz: -do {...}while(pet.charAt(0)!='a' || pet.charAt(0)!='b');

Size aşağıda olası bir çözümü sunuyorum: -

   public static void main(String[] args) {

    Scanner input = new Scanner(System.in);


    System.out.println("    Welcome To The Choices Game...    ");
    System.out.println("Please enter your name: " );

    String playerName = input.nextLine();

    System.out.println("What is " + playerName + "'s" + " favorite pet?");
    System.out.println("a. Dog \nb. Cat");

    //Choice of choosing a dog or a cat

    do{
     String pet = input.next();

    switch (pet.charAt(0)) {
        case 'a' -> {
            System.out.println("What is your dog's name? ");
            String dogsName = input.next();
            System.out.println("Your Character's Name is: " + playerName + "\nYour Pet's Name is: " + dogsName);
            break;}
        case 'b' -> {
            System.out.println("What is your cat's name? ");
            String catsName = input.next();
            System.out.println("Character Name: " + playerName + "\nPet Name: " + catsName);
            break;}
        default -> System.out.println("That is not a valid option. Please choose again.");
    }
   
}while(pet.charAt(0)!='a' && pet.charAt(0)!='b');

  input.close();

}