首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果输入字符串值或与情况无关的数字,如何不获取错误

如果输入字符串值或与情况无关的数字,如何不获取错误
EN

Stack Overflow用户
提问于 2017-11-13 09:43:45
回答 3查看 64关注 0票数 0

如果输入字符串值或与大小写无关的数字,如何不获取错误。

代码语言:javascript
复制
switch(optionIssues) {
   case 1 : healthIssues = "Dental Problem"; ;break;
   case 2 : healthIssues = "Respiratory Diphtheria";;break;
   case 3 : healthIssues = "Mosquitoes Infections";;break;
}   
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-13 09:52:36

如果输入字符串,则可以通过将选项作为字符串读取或捕获异常来防止错误,如下所示:

代码语言:javascript
复制
int optionIssues;
try {
    optionIssues = new Scanner(System.in).nextInt();
}
catch (Exception e) {
    optionIssues = 0;
}

无论如何,您的开关中应该有一个默认的情况:

代码语言:javascript
复制
switch(optionIssues){
    case 1 : healthIssues = "Dental Problem"; break;
    case 2 : healthIssues = "Respiratory Diphtheria"; break;
    case 3 : healthIssues = "Mosquitoes Infections"; break;
    default: System.out.println("Invalid option.");
}
票数 0
EN

Stack Overflow用户

发布于 2017-11-13 09:47:35

您应该添加这样的默认情况:

代码语言:javascript
复制
switch(optionIssues){
            case 1 : healthIssues = "Dental Problem";break;
            case 2 : healthIssues = "Respiratory Diphtheria";break;
            case 3 : healthIssues = "Mosquitoes Infections";break;
            default : break;
        }

您可以看到更多关于它的信息,这里

票数 0
EN

Stack Overflow用户

发布于 2017-11-13 09:49:57

添加默认情况时,您将指示程序在所有情况都不满足时应该做什么。

代码语言:javascript
复制
switch(optionIssues){
            case 1 : healthIssues = "Dental Problem"; ;break;
            case 2 : healthIssues = "Respiratory Diphtheria";;break;
            case 3 : healthIssues = "Mosquitoes Infections";;break;
            default: 
                System.out.println("Introduce an integer between 1 and 3");
                break;
        }

如果您想在用户没有引入正确的选项时返回到交换机,您可以使用一个with循环,其结束条件如下:

代码语言:javascript
复制
boolean exit = false;
System.out.println("Introduce number 4 to finish");

while(!exit) {
    switch(optionIssues){
            case 1 : 
                healthIssues = "Dental Problem";
                break;
            case 2 : 
                healthIssues = "Respiratory Diphtheria";
                break;
            case 3 : 
                healthIssues = "Mosquitoes Infections";
                break;
            case 4 : 
                exit = true;
                break;
            default: 
                System.out.println("Introduce an integer between 1 and 4, please");
                break;
        }
}

这样,除非用户引入选项4,否则swith将被重复。如果您只想在引入了不正确的数字时重复它:

代码语言:javascript
复制
boolean repeat= true;

while(repeat) {
    switch(optionIssues){
            case 1 : 
                healthIssues = "Dental Problem";
                repeat = false;
                break;
            case 2 : 
                healthIssues = "Respiratory Diphtheria";
                repeat = false;
                break;
            case 3 : 
                healthIssues = "Mosquitoes Infections";
                repeat = false;
                break;
            default: 
                System.out.println("Introduce an integer between 1 and 4, please");
                break;
        }
}

如果用户引入一个5,则布尔重复是真的,所以它会重复。但是如果一个正确的数字,重复是假的,所以它会熄灭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47261242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档