ฉันกำลังพยายามทำให้สวิตช์เคสของฉันวนกลับอีกครั้งหากได้รับค่าเริ่มต้น

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();

}

ฉันไม่พบลูปที่จะใช้ที่จะนำกลับมาใช้กรณี a ซ้ำแล้วซ้ำอีกจนกว่าผู้ใช้จะตอบโดยใช้ตัวเลือกใดตัวเลือกหนึ่งความช่วยเหลือใด ๆ จะยอดเยี่ยมมาก! ขอบคุณ

คำตอบ

1 LoveshDongre Aug 17 2020 at 05:21

การใช้do whileลูปเป็นวิธีง่ายๆในการแก้ปัญหา

ฉันใช้ตัวแปรrepeatเพื่อตรวจสอบว่าฉันต้องการขออินพุตอีกครั้งหรือไม่

นอกจากนี้โปรดทราบว่าตอนนี้แม้ว่าฉันจะเพิ่มเคสอื่น (พูดcase 'c') ฉันไม่จำเป็นต้องแก้ไขเงื่อนไขสำหรับdo whileลูปของฉัน

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

การวนซ้ำเป็นวิธีแก้ปัญหาที่ดี แต่คุณยังสามารถใช้วิธีการ Recessive ใน java ได้

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

หากต้องการวนซ้ำส่วนสวิตช์เคสทั้งหมดคุณสามารถลองวางไว้ในลูป do-while สำหรับเงื่อนไขที่จะใช้กับบล็อก do-while คุณสามารถลอง: -do {...}while(pet.charAt(0)!='a' || pet.charAt(0)!='b');

ฉันกำลังให้วิธีแก้ปัญหาที่เป็นไปได้ด้านล่าง: -

   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();

}