Je suis assez nouveau à Java. Désolé s'il s'agit d'une question boiteuse. J'ai cette morceau de code. Ce n'est pas tout ce qui est évidemment.
char option = scan.next().charAt(0);
for (option !='a'||option !='b'||option !='c'||option !='d'||option !='e'||option !='f'||option !='q') {
System.out.println("Please pick an option from the menu above");
}
int lengthOne = stringOne.length(); //Getting the lengths for each string
int lengthTwo = stringTwo.length();
if (option == 'a'|| option == 'A') { //If the user inputs a
if (lengthOne == lengthTwo) { //If both lengths are equal
System.out.println("The strings are the same length");
}
3 Réponses :
Ajouter une analyse à l'intérieur de la boucle.
char option = scan.next().charAt(0);
while (option !='a'||option !='b'||option !='c'||option !='d'||option !='e'||option !='f'||option !='q') {
System.out.println("Please pick an option from the menu above");
option = scan.next().charAt(0);
}
Essayez ceci
Scanner scan = new Scanner(System.in);
char option = scan.next().charAt(0);
while (option != 'a' && option !='b' && option != 'c'&& option !='d'&& option !='e'&& option !='f'&& option !='q') {
System.out.println("Please pick an option from the menu above");
option = scan.next().charAt(0);
}
Vous pouvez également modifier la déclaration dans pendant code> pour quelque chose comme ceci: "abcdefq" .indexof (option) == -1 code>
@ R4yy Vous devriez être plus prudent avec le code de publication: votre boucle tandis que vous ne compilez pas, votre logique et doivent être séparés du nom de la variable
Travaillé bien pour moi, je l'ai testé. Peut-être que c'était juste le colle, im Sry alors.
La boucle tandis que la boucle peut sembler désordonnée pour ce que vous essayez d'accomplir. J'utiliserais une instruction de commutation à l'intérieur d'une boucle "DOLE".
Si l'entrée de l'utilisateur ne correspond pas à un "cas", il passera à la valeur par défaut. P>
Quand un utilisateur entre 'Pour cesser, alors Boolean ValidSelection code> tourne vers true code> et vous quitterez la boucle "DOLE". P> public static void main( String[] args )
{
Scanner scan = new Scanner( System.in );
boolean validSelection = false;
do
{
System.out.println( "Please pick an option from the menu above" );
char option = scan.next().charAt( 0 );
switch( option )
{
case 'a':
break;
case 'b':
break;
case 'c':
break;
case 'd':
break;
case 'e':
break;
case 'f':
break;
case 'q':
validSelection = true;
break;
default:
System.out.println( "Choice invalid." );
break;
}
}
while( validSelection == false );
}
}
Ce qui est exactement le même que lorsque vous utilisez une boucle de temps. La seule différence entre tout moment et tout moment est que la condition d'un DO-WHOI ne sera d'abord vérifiée qu'après la première itération, ce qui signifie qu'il fonctionnera toujours au moins une fois, pendant d'autre part, pourrait ne pas être exécuté, si la condition est défini sur False avant exécution. ! Validselection est un meilleur moyen de vérifier validselection == False, BTW
Cela a effectivement aidé beaucoup et a fait que mon code ait beaucoup plus de sens. Merci!
Que diriez-vous: celui que vous choisissez?