मैं अपने स्विच केस लूप को फिर से बनाने की कोशिश कर रहा हूं यदि वे डिफ़ॉल्ट मिलते हैं
//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();
}
मुझे उपयोग करने के लिए एक लूप नहीं मिल रहा है जो इसे एक मामले में और बार-बार वापस लाएगा जब तक कि उपयोगकर्ता किसी एक विकल्प का उपयोग करके जवाब नहीं देता, कोई भी मदद बहुत बढ़िया होगी! धन्यवाद
जवाब
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();
लूपिंग अच्छा उपाय है लेकिन आप जावा में रेसेसिव तरीकों का भी उपयोग कर सकते हैं।
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();
}
}
पूरे स्विच-केस सेक्शन को लूप करने के लिए, आप इसे डू-टाइम लूप में डालने का प्रयास कर सकते हैं। इस शर्त के लिए कि आप प्रयास कर सकें, ब्लॉक करते समय उपयोग करें: -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();
}