我想做一个简单的事情,使我可以使用“ q”键退出程序。我不确定这是否可能,因为我的搜索没有给我两个人,而是一个给另一个。
int var = in.nextInt();
switch (var)
{
case 1:
System.out.println("Enter num");
long num = in.nextLong();
a.getPrime(num);
break;
case "q":
System.out.println("Thanks for using");
System.exit(0);
break;
如您所见,我将var设置为获取一个整数,该整数显然不能接受字母。有什么方法可以解决这个问题吗?还是我必须处理一下?
答案 0 :(得分:1)
更改代码
String var = in.nextLine();
switch (var)
{
case "1":
System.out.println("Enter num");
long num = in.nextLong();
a.getPrime(num);
break;
case "q":
System.out.println("Thanks for using");
System.exit(0);
break;
答案 1 :(得分:1)
switch
语句在给定时间只能对一种类型的变量进行操作。您可以尝试提示用户输入字符串:
String var = in.next();
switch(var) {
case "1":
System.out.println("Enter num");
long num = in.nextLong();
a.getPrime(num);
break;
case "q":
System.out.println("Thanks for using");
System.exit(0);
break;
default:
}
答案 2 :(得分:0)
String var = in.next();
switch (var)
{
case "1":
System.out.println("Enter num");
long num = in.nextLong();
a.getPrime(num);
break;
case "q":
System.out.println("Thanks for using");
System.exit(0);
break;
答案 3 :(得分:0)
这是一个很晚的答案,但以防万一
public static void main(String...strings) throws IOException {
getValidInput();
}
private static void getValidInput() throws IOException {
//Enter data using BufferReader
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// Reading data using readLine
String input = reader.readLine();
// Printing the read line
System.out.println("Entered String is :: "+input);
switch (input)
{
case "q":
System.out.println("Thanks for using");
System.exit(0);
default:
if(input.matches("[0-9]*")){
int num = Integer.parseInt(input);
System.out.println("Is Number Prime :: "+isPrime(num));
}else{
System.out.println("Enter a valid number");
}
getValidInput();
}
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}