मैं अपने स्विच केस लूप को फिर से बनाने की कोशिश कर रहा हूं यदि वे डिफ़ॉल्ट मिलते हैं

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

}

मुझे उपयोग करने के लिए एक लूप नहीं मिल रहा है जो इसे एक मामले में और बार-बार वापस लाएगा जब तक कि उपयोगकर्ता किसी एक विकल्प का उपयोग करके जवाब नहीं देता, कोई भी मदद बहुत बढ़िया होगी! धन्यवाद

जवाब

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

लूपिंग अच्छा उपाय है लेकिन आप जावा में रेसेसिव तरीकों का भी उपयोग कर सकते हैं।

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

}