Je suis un débutant à Java, et comme un exercice voulait wap un programme simple pour imprimer non. de caractères '*' selon l'utilisateur. Mais d'une manière ou d'une autre, la sortie de ce code reste toujours similaire: si je remplace "*" avec i, je peux voir qu'il bouge jusqu'à 50/52/54, même si je cours le boucle no_stars fois. P> Qu'est-ce qui semble être le problème ici? p> p>
5 Réponses :
Vous devez analyser le numéro reçu à partir de vous pouvez faire, par exemple: p> System.in.read () code> ou également le lire comme un entier, vous venez de le jeter, donc si vous entrez 5, il passe 0x35 fois ( Quelle est la valeur du caractère '5')
C'est une bonne réponse ... je suis nouveau à ça .. :)
Merci, cela a travaillé. Mais je ne comprends toujours pas que pourquoi était-ce que j'avais 50 52 ou 54 étoiles? Même si le système.infread () ne lit que le premier caractère, je suis entré dans des véhiculest comme 7, 10, 86, 3, etc. et obtenu la même sortie sur {50,53,54}. Pourriez-vous expliquer cela?
'7' a la valeur de 0x37 qui est 55. qui est suffisamment proche (compte tenu de vous donner des exemples et non des valeurs réelles).
Parce que vous lisez le code ASCII du caractère à partir de l'entrée ici:
no_stars = Integer.parseInt(Console.readLine());
printstars(System.in.read() - '0');
Merci, mais je serais toujours coincé avec l'octet d'entrée. Je pense que j'utiliserai la classe du scanner surtout.
Il y a deux erreurs dans votre code.
premier fort> p> lit un octet, pas un entier, pas un entier. , c'est l'analyse de l'entier et obtient le premier octet de celui-ci. p> second fort> p> imprimera toujours une étoile de plus que demandé.
Donc, il devrait être remplacé par p> suggestion: vous pouvez utiliser Scanner pour lire votre entier, par exemple P>
Scanner scanner = new Scanner(System.in);
no_stars = scanner.nextInt();
Voici le programme corrigé pour vous: (Le principal problème était de cette ligne // no_stars = (int) system.in.read ();)
Quelle est votre sortie attendue et actuellement à quoi ressemblent la sortie?
faire un système.out.println (n); avant la boucle