出于某种原因,我无法访问 switch 语句中的变量,
我不允许使用任何全局变量。
import java.util.Scanner;
public class Projet {
public static void main(String[] args) {
String clef="vide";
Scanner in = new Scanner(System.in);
showMenu(in);
in.close();
}
Main 方法尽可能保持干净......只调用一次菜单。
public static void showMenu(Scanner in){
System.out.printf("******************************************%n" +
"* Choisissez une des options suivantes : *%n" +
"* 1) Saisir la clef secrète *%n" +
"* 2) Afficher la clef secrète *%n" +
"*******************************************%n%n%n");
choice(in);
}
showMenu(in)
根据所做的选择,我们将进入一个特定的案例。
public static int getNumber(Scanner in){
int choice = in.nextInt();
in.nextLine();
return choice;
}
getNumber(in)
返回我们之前的输入,以便我们进入案例。双重功能,将在下一个版本中删除。
public static void choice(Scanner in){
try {
switch(getNumber(in)){
案例1->我们假设保留由返回的谱号变量saisirClef(in)
case 1:
String clef = saisirClef(in);
break;
案例 2 -> 它应该保留案例 1 的值?
case 2:
afficherClef();
break;
default:
System.out.println("Default");
break;
}
} catch (Exception e) {
System.out.println("Please enter a number");
//choice(in);
}
}
saisirClef(in)
在案例一中调用的方法。
public static String saisirClef(Scanner in){
System.out.println("Saisir la clef secrète :");
String a = in.nextLine();
System.out.println("Voici ce que vous avez tapper : "+a);
return a;
}
afficherClef
案例 2 中调用的方法
public static String afficherClef() {
return clef;
}
}
每次showMenu(in)
我的变量被清除。我应该能够在不同的情况下传输谱号变量......
你能帮我弄清楚我在这里做错了什么吗?我正在使用 return 语句,我只是不明白它们为什么会消失。