JAVA: avec de la Ficelle pour en Faire Alors que pour la prise de
import java.util.Scanner;
import java.util.*;
public class MultipicationTable{
public static void main(String[] args)
{
//Initialising selection variable to 0
int selection = 0;
int MultiValue = 0;
int UserValue = 0;
//Initializing the count for loop
int i;
//Initializing Random1 and Random2 to get random values
int Random1;
int Random2;
//Creating new Scanner
Scanner input = new Scanner(System.in);
do{
//Menu to select type of multipication
System.out.println("Please select your option");
System.out.println("1: Random Multipication table");
System.out.println("2: Give your own numbers");
//Getting the input from the above menu
selection = input.nextInt();
switch (selection)
{
case 1:
Random1 = (int)(Math.random() * 1000);
Random2 = (int)(Math.random() * 1000);
Random1 = Random1/10;
System.out.println("You Random Value to pultiply is " + Random1);
System.out.println("How long do you want? 2 - 100 ");
MultiValue = input.nextInt();
for (i = 1; i <= MultiValue; i++ )
{
System.out.println("Multipication of " + Random1 + " * " + i + " is: " + Random1 * i);
}
case 2:
System.out.println("What is your Number? ");
UserValue = input.nextInt();
System.out.println("How long do you want to multiply? ");
MultiValue = input.nextInt();
for (i = 1; i <= MultiValue; i++ )
{
System.out.println("Multipication of " + UserValue + " * " + i + " is: " + UserValue * i);
}
}
System.out.println("Would you like to exit? ");
String Exit = input.nextLine();
}while(Exit != 'y');
}
}
Je pense que mon erreur est sur cette partie du code.
System.out.println("Would you like to exit? ");
String Exit = input.nextLine();
}while(Exit != 'y');
J'obtiens une erreur comme "Sortie ne peut pas être résolu". Mon objectif est de faire une boucle jusqu'à ce que l'utilisateur entre y
dans cette question.
Par convention, les variables doivent être en minuscules et vous auriez besoin d'invoquer l' .est égale à la fonction de bien effectuer des comparaisons de chaînes.
OriginalL'auteur user1947402 | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, la condition d'une
while
oudo...while
boucle est à l'extérieur de la portée. Cela signifie que toutes les variables déclarées à l'intérieur du bloc de lado...while
sont plus étendue lorsque la condition est vérifiée. Pour résoudre ce problème, vous devez déclarer votreexit
variable en dehors de lado...while
boucle:Toutefois, ce code ne parviennent toujours pas à compiler, car
Exit
est déclaré comme unString
mais vous êtes en comparant avec'y'
qui est unchar
. Les littéraux de chaîne sont toujours entourés par des guillemets, donc"y"
est une Chaîne de caractères.Maintenant l'évolution de la condition de
Exit != "y"
de compiler, mais il ne fonctionnera pas comme prévu. Vous avez besoin de comparerString
s à l'aide de laequals()
méthode. Cela signifie que la condition doit être!Exit.equals("y")
. Les plaçant à l'intérieur de lawhile
condition devrait corriger les problèmes avec votre boucle.Sinon, si vous voulez vérifier le mot "oui" ou des variantes, vous pouvez utiliser
while(Exit.charAt(0) != 'y');
. Cette fonction vérifie si le premier caractère deExit
est un "y".Le code de @Code-Gourou travaillé!... Mais il n'y a pas de boucle...Il va directement à nouveau sur le Menu sans me demandant de cesser de fumer. Il ne s'affiche pas si je veux le quitter mais elle affiche ensuite le menu directement. Il ressemble à Quitter = input.nextLine(); n'a pas été exécutée correctement.
ajouter
System.out.println("Exit value: " + Exit);
aprèsExit = input.nextLine();
pour voir quelle est la valeur deExit
. Peut-être que ce sera plus clair. En passant: Il n'est Syntaxrule mais il est convention pour commencer variables avec une lettre minuscule. Seules les classes et les constantes (final
) doit commencer avec une lettre majuscule. Et dites-nous ce que vous avez changé dans votre condition du while.C'était quelqu'un d'autre de plus. Pour un devoir scolaire, comme cela semble être, il semble raisonnable de chemin à faire. Je n'aurais probablement pas le faire moi-même.
Merci d'éditer votre question ou en commencer une nouvelle avec les changements que vous avez faits et d'expliquer ce que le problème actuel est. Nous serons heureux de vous aider.
OriginalL'auteur Code-Apprentice
String Exit
doit être déclarée à l'extérieur de la boucleÉdité, comme mentionné par Kartik :
Devrait utiliser équivaut à comparer des chaînes de caractères. et == vérifie si les deux variables se rapportent à un même objet.
OriginalL'auteur ssk
Votre premier problème est la portée de
Exit
@Subin a couvert.Vous pouvez utiliser}while(!Exit.equals("y");
.Vous pouvez regarder Comment puis-je comparer les chaînes de caractères en Java? pour la raison. Fondamentalement, votre
!=
sera probablement toujours être vrai, car il compare les objets, et donc de décider qu'ils sont deux objets différents.OriginalL'auteur Karthik T
OriginalL'auteur Michael Ardan