当用户输入“结束”时如何结束这个程序?

Posted

技术标签:

【中文标题】当用户输入“结束”时如何结束这个程序?【英文标题】:How to end this program when user inputs "end"? 【发布时间】:2020-04-22 07:03:50 【问题描述】:

所以基本上我想弄清楚如何使用Integer.valueOf(String s)Integer.parseInt(String s) 通过为用户输入键入“end”来停止这个程序

import java.util.Scanner;

public class monkey1
    public static void main(String[] args)
        Scanner s = new Scanner(System.in);
        int sum = 0;
        int lol = 1;
        do  
            System.out.print("Enter a number: ");
            lol = s.nextInt();
            sum += lol;
            if (lol > 0) 
                System.out.println("Sum is now: " + sum);
            
         while (lol>0);
    

【问题讨论】:

【参考方案1】:

首先 - 您需要将 lol=sc.nextInt() 更改为 String tmp = s.nextLine()

第二个 - 做

try 
   if (tmp.equals("END")) 
       break;  // This will exit do-while loop
   
   lol = Integer.parseInt(tmp);
 catch (NumberFormatException e) 
  e.printStackTrace();
  // Here you can also exit loop by adding break. Or just ask user to enter new text.


【讨论】:

你能帮忙并建议如何处理这个***.com/questions/62036791/…【参考方案2】:

您应该学习如何使用 try/catch。 我们开始:

String text = "";
    int lol = 1;
    do 
        System.out.print("Enter a number: ");
        text = s.nextLine();
        try 
            lol = Integer.valueOf(text);
        catch (Exception e)
            System.out.println("Exit");
            System.exit(0);
        

【讨论】:

【参考方案3】:

这是你的代码

package Phone;

import java.util.Scanner;

public class monkey1
    public static void main(String[] args)
        Scanner s = new Scanner(System.in);
        int sum = 0;
        int hi = 1;
        do  
            System.out.print("Enter a number: ");
            String lol = s.nextLine();
            if(lol.equals("end")) 
                break;
        

        hi = Integer.parseInt(lol);

        sum += hi;
        if (hi > 0) 
            System.out.println("Sum is now: " + sum);
        
     while (hi > 0);

我在这里所做的是我将 lol 更改为 hi 以添加并接受 String 输入,以便您可以输入 end...

【讨论】:

你能帮忙并建议如何处理这个***.com/questions/62036791/…【参考方案4】:

我建议在转换为 int 之前检查 if s.equals("end") 是这样的:

do  
        System.out.print("Enter a number: ");
        String userValue = s.nextLine();
        if(userValue.equals("end")
            break;
        lol = Integer.parseInt(userValue);
        sum += lol;
        if (lol > 0)
            System.out.println("Sum is now: " + sum);
        
    while (lol>0);

【讨论】:

请注意,如果用户输入的文本不是end 并且不是数字,则此示例将失败并显示NumberFormatException 是的,重要提示@VladislavVarslavans,用户提供正确的输入是理所当然的。

以上是关于当用户输入“结束”时如何结束这个程序?的主要内容,如果未能解决你的问题,请参考以下文章

错误输入C后结束scanf [重复]

没有重新启动程序和输入整数不起作用

138-循环的中断continue,goto和return结束循环

SQL 日期过滤器:当开始日期 = 结束日期时返回结果

python 求乘积

如何在用户输入时中断 ocaml 程序