catch (InputMismatchException e) 代码怎么感觉没执行 求大佬看下!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Lin_bai_ 2020-10-13 02:57:02

import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Scanner;

class Ranking
{
public static void main(String[] args)
{
String[] teams = {"伊朗","韩国","日本","澳大利亚","沙特阿拉伯","乌兹别克斯坦","阿拉伯联合酋长国","卡塔尔","中国","叙利亚"};
Map<Integer,String> map = new HashMap<Integer, String>();
for (int i = 0;i<teams.length;i++)
{
map.put(i+1,teams[i]);
}
System.out.println(map);
Scanner sc = new Scanner(System.in);
System.out.println("根据输入的名词查询亚足脸排名前10的某一个男足国家队");
int number = sc.nextInt();
try {
if (number > 0&&number <= 10)
{
System.out.println("亚足联排名第"+number+"的男足国家队是"+map.get(number)+" ");
sc.close();
}else
{
System.out.println("输入错误!只能输入1-10中的某一个整数");
}
}catch (InputMismatchException e)
{
System.out.println("请输入数字");
}
}
}
...全文
3707 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin_bai_ 2020-10-14
  • 打赏
  • 举报
回复
好的 我待会试下
明白畅达 2020-10-14
  • 打赏
  • 举报
回复
我理解错你的意思了,我自己运行了下你的代码发现了问题。
你把int number = sc.nextInt();这行代码放在try花括号内就可以了

try {
int number = sc.nextInt();
if (number > 0&&number <= 10)
{
System.out.println("亚足联排名第"+number+"的男足国家队是"+map.get(number)+" ");
sc.close();
}else
{
System.out.println("输入错误!只能输入1-10中的某一个整数");
}
}catch (InputMismatchException e)
{
System.out.println("请输入数字");
System.out.println(e);
}
明白畅达 2020-10-13
  • 打赏
  • 举报
回复
引用 6 楼 Lin_bai_ 的回复:
他不会返回请输入数字这几个字呀???
只有当你try里面出现 InputMismatchException这个异常才会走catch,catch是为了捕获你try里面的异常,而你catch里定义异常父类为InputMismatchException,所以当你try中出现InputMismatchException或者他的子类异常,catch中的内容才会输出,你都没有异常给它捕获它怎么输出呢?说明你的代码执行的没有问题
Lin_bai_ 2020-10-13
  • 打赏
  • 举报
回复
他不会返回请输入数字这几个字呀???
XGrscM 2020-10-13
  • 打赏
  • 举报
回复
要把int number = sc.nextInt();包含进去
明白畅达 2020-10-13
  • 打赏
  • 举报
回复
catch是你try的地方出现异常后才会执行吧。。你可以试试在try里面写一个by zero异常,但是需要把catch括号里的改成 Exception e 看看catch里的应该就执行到了
XGrscM 2020-10-13
  • 打赏
  • 举报
回复
XGrscM 2020-10-13
  • 打赏
  • 举报
回复
InputMismatchException异常是指输入的值与设定的值类型不匹配,比如你设置的是整型,输入了helloworld,就会抛出该异常
Lin_bai_ 2020-10-13
  • 打赏
  • 举报
回复
import java.util.HashMap; import java.util.InputMismatchException; import java.util.Map; import java.util.Scanner; class Ranking { public static void main(String[] args) { String[] teams = {"伊朗","韩国","日本","澳大利亚","沙特阿拉伯","乌兹别克斯坦","阿拉伯联合酋长国","卡塔尔","中国","叙利亚"}; Map<Integer,String> map = new HashMap<Integer, String>(); for (int i = 0;i<teams.length;i++) { map.put(i+1,teams[i]); } System.out.println(map); Scanner sc = new Scanner(System.in); System.out.println("根据输入的名词查询亚足脸排名前10的某一个男足国家队"); int number = sc.nextInt(); try { if (number > 0&&number <= 10) { System.out.println("亚足联排名第"+number+"的男足国家队是"+map.get(number)+" "); sc.close(); }else { System.out.println("输入错误!只能输入1-10中的某一个整数"); } }catch (InputMismatchException e) { System.out.println("请输入数字"); } } }

50,541

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧