Instruction de base de la programmation Java Practice-Switch
Est-il facile d'écrire le programme que j'ai créé lorsque j'étais un nouveau venu maintenant dans ma deuxième année, ou est-ce que je l'ai oublié?
J'ai pensé, alors je l'ai fait.
Conclusion
- Vous pouvez faire quelque chose qui fonctionne pour le moment (même si c'est presque grâce à Eclipse)
- Je me demande ce que je ne me demandais pas quand j'étais un nouveau venu
problème
- Nom du fichier source "Check22.java"
- 2 Entrez le nombre (entier) et la méthode de calcul (1 caractère)
- Effectue l'opération spécifiée et sort le résultat du calcul
- Utilisez l'instruction switch pour dériver le processus selon la méthode de calcul.
- Pour d'autres détails, veuillez vous référer aux résultats d'exécution suivants.
Veuillez saisir le premier chiffre>
10
Veuillez saisir le deuxième chiffre>
3
Veuillez sélectionner une méthode de calcul>
(a)Ajouter
(b)Soustraire
(c)Multiplier
(b)division
d
La réponse est 3
la mise en oeuvre
Je l'ai fait comme suit.
Check22.java
package practice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Check22 {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
int num1 = 0;
int num2 = 0;
try {
System.out.println("Veuillez saisir le premier chiffre");
line = reader.readLine();
num1 = Integer.parseInt(line);
System.out.println("Veuillez saisir le deuxième chiffre");
line = reader.readLine();
num2 = Integer.parseInt(line);
System.out.println("Veuillez sélectionner une méthode de calcul");
System.out.println("(a)Ajouter");
System.out.println("(b)Soustraire");
System.out.println("(c)Multiplier");
System.out.println("(d)division");
line = reader.readLine();
if (!( line.equals("a")) && !( line.equals("b") )&& !( line.equals("c") )&& !( line.equals("d"))) {
System.out.println("a,b,c,Veuillez entrer l'un des d");
}else {
String symbol = line;
int answer = calc(num1,num2,symbol);
System.out.println("La réponse est" + answer + "est.");
}
}catch(NumberFormatException e) {
System.out.println("Veuillez saisir un nombre");
}catch (IOException e) {
e.printStackTrace();
}
}
public static int calc(int num1, int num2, String symbol) {
int result;
switch(symbol) {
case "a":
result = num1 + num2;
break;
case "b":
result = num1 - num2;
break;
case "c":
result = num1 * num2;
break;
default:
result = num1 / num2;
break;
}
return result;
}
}
Question
- Si vous n'écrivez pas break dans l'instruction switch de la méthode calc, tout le traitement s'exécutera.
-Au début, je n'ai pas écrit break;, et même si j'ai entré a, tous les cas ont été traités et le résultat n'était pas comme prévu. Quand j'ai entré le cas "a":, je pensais que seule la partie a serait traitée, mais je savais que le traitement ne serait pas terminé avant la pause. (L'année dernière, j'ai écrit break; pour le moment, donc je pense que je l'ai écrit avec l'intention d'ajouter une pause;)
- Si vous n'ajoutez pas de statique à la méthode calc, une erreur se produira (Contenu de l'erreur: la méthode non statique calc (int, int, string) de type Check22 ne peut pas être référencée statiquement)
-Comme c'est une méthode de la même classe, vous pouvez vous y référer sans ajouter de statique! Je pensais. Le contenu de l'erreur est le même, mais j'ai découvert que les méthodes avec statique ne peuvent pas utiliser directement des méthodes non statiques. Puisque les méthodes statiques sont gérées dans des endroits qui ne sont pas liés aux instances, même si vous essayez de vous y référer à partir de méthodes non statiques, vous ne pourrez pas déterminer «où est cette méthode d'instance?», Donc une erreur de compilation se produira. Ouais. J'ai l'impression de le comprendre d'une manière ou d'une autre.
(Mais la méthode principale est une méthode statique, donc si vous voulez faire référence à une méthode à partir de là, je pense que vous devez ajouter de la statique à toutes les méthodes, mais la question de savoir quoi faire n'est pas résolue.)
Impressions
- Peut-être que je n'ai pas pensé à la gestion des exceptions la première année
- Je ne suis pas doué pour penser aux noms de variables et aux noms de méthodes