在java中如果Scanner的输入值类型与设定的类型不一样要从新再次输入应该怎样解决
try{System.out.println("请选择玩家职业:1.武士\t2.法师\t3.召唤师");intzhiy=input.nextInt();switch(zh...
try{
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
int zhiy = input.nextInt();
switch(zhiy){
case 1:
zhans();
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}
}catch(Exception e){
System.out.println("选择错误!程序退出!");
System.exit(1);
本身输入应为int型数据 但是输入的如果是String 类型数据 程序便会出错 我想出错之后再次从新运行此方法让玩家再次选择知道输入正确之后在运行下面的代码 应该怎么写?
}
此代码使用java语言编写! 展开
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
int zhiy = input.nextInt();
switch(zhiy){
case 1:
zhans();
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}
}catch(Exception e){
System.out.println("选择错误!程序退出!");
System.exit(1);
本身输入应为int型数据 但是输入的如果是String 类型数据 程序便会出错 我想出错之后再次从新运行此方法让玩家再次选择知道输入正确之后在运行下面的代码 应该怎么写?
}
此代码使用java语言编写! 展开
展开全部
由于你只贴上了部分代码,我也自己进行了小改动保证代码能够执行,代码贴上,谢谢采纳:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean flag = true;
while(flag) {
try{
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
Scanner input = new Scanner(System.in);
int zhiy = input.nextInt();
switch(zhiy){
case 1:
System.out.println("你选择的是武士");
flag = false;
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
flag = false;
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
flag = false;
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}
}catch(Exception e){
System.out.println("选择错误!");
}
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean flag = true;
while(flag) {
try{
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
Scanner input = new Scanner(System.in);
int zhiy = input.nextInt();
switch(zhiy){
case 1:
System.out.println("你选择的是武士");
flag = false;
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
flag = false;
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
flag = false;
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}
}catch(Exception e){
System.out.println("选择错误!");
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我刚才帮你想了一段时间,我觉得唯有这样
你想实现的功能完全没问题。
不行你运行看看 我运行的了
import java.util.*;
public class error {
static void zhans(){
}
static void newway(){
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
Scanner input=new Scanner(System.in);
int zhiy = input.nextInt();
switch(zhiy){
case 1:
zhans();
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}}
public static void main(String[] args){
try{
newway();
}catch(Exception e){
System.out.println("选择错误!程序退出!");
newway();
}}}
你想实现的功能完全没问题。
不行你运行看看 我运行的了
import java.util.*;
public class error {
static void zhans(){
}
static void newway(){
System.out.println("请选择玩家职业:1. 武士\t2. 法师\t3. 召唤师");
Scanner input=new Scanner(System.in);
int zhiy = input.nextInt();
switch(zhiy){
case 1:
zhans();
break;
case 2:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
case 3:
System.out.println("此职业未开通,敬请期待!O(∩_∩)O~");
break;
default:
System.err.println("选择不正确,请重新选择!");
break;
}}
public static void main(String[] args){
try{
newway();
}catch(Exception e){
System.out.println("选择错误!程序退出!");
newway();
}}}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误贴上来是异常?
追问
我想在异常之后再次返回到try代码块里运行 直到输入正确再运行switch里的代码
追答
int zhiy = -1;
while(zhiy<0){
try{
zhiy = input.nextInt();
}catch(Exception e){
zhiy = -1;
System.out.println("xxxxxxxxxxxxxx");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询