嗨,这是我第三次在这个论坛上发布这个问题,到目前为止还没有人能够启发我关于这种情况。
我只在这里粘贴了重要的代码,并将尽力解释......
方法:
- showMenu(in) - 显示菜单列表,也调用 choice(in)
- choice(in) - 通过 -> getNumber(in) 接受 in 输入
- getNumber(in) - 是返回的数字,现在选择正确的大小写
现在我只处理情况 1:和情况 2:
案例1:
- 字符串谱号 = saisirClef(in) 分配的返回值
- saisirClef(in);是完成逻辑后返回字符串的方法
- 需要 showMenu(in),这样我现在可以选择不同的情况
案例2: 很简单,我试图在情况 1 中完成后访问字符串; 如果不是,那么我应该经历案例 1
这可以做到吗? 我觉得每次它通过中断时,所有变量都会消失,这正常吗?
我该怎么做?
public static void choice(Scanner in){
switch(getNumber(in)){
case 1:
String clef = saisirClef(in);
showMenu(in);
break;
case 2:
if(clef.isEmpty()){
System.out.println("Erreur : Aucune clef n’a été saisie.");
saisirClef(in);
}
else{
afficherClef(clef);
}
break;
case 3:
chiffrerFichier();
break;
case 4:
dechiffrerFichier();
break;
case 5:
quitApplication();
break;
default:
System.out.println("Default");
break;
}
}
最佳答案
试试这个:
private static String clef = null;
public static void choice(Scanner in){
switch(getNumber(in)){
case 1:
clef = saisirClef(in);
showMenu(in);
break;
case 2:
if(clef == null || clef.isEmpty()){
System.out.println("Erreur : Aucune clef n’a été saisie.");
clef = saisirClef(in);
}
else{
afficherClef(clef);
}
break;
// ...
}
关于java - 访问不同情况下的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16630416/