【问题标题】:A loop that lets a user enter strings until "q" for quit允许用户输入字符串直到“q”退出的循环
【发布时间】:2017-06-16 08:20:07
【问题描述】:

有点难过。我需要以下内容从验证点循环(检查逗号),以便用户可以一遍又一遍地输入文本,直到按下“q”退出。我试着在那里放两个循环,但我不知道如何一遍又一遍地重复同样的事情。我需要解析留在那里完成作业。

谢谢。

  p = 1;
  while(!userName.contains(",")){
  System.out.println("Error: No comma in string ");
  System.out.println("Enter input string: ");
  userName = scnr.nextLine();
  p++;      

 }

  userName = userName.replace(",", "");
  inSS = new Scanner(userName);
  firstName = inSS.next();
  lastName = inSS.next(); 


  System.out.println("First word: " +firstName );
  System.out.println("Second word: " +lastName); 
  p++;


  }        
}     

【问题讨论】:

    标签: java loops parsing while-loop do-while


    【解决方案1】:

    您是否考虑过使用if 语句和break? break 语句离开当前循环。因此,例如,您可以添加

    if(scnr.nextLine().equals("q")){
        break;}
    

    如果这是您要的,那将离开 while 循环。

    【讨论】:

    • 谢谢,我会调查的。基本上,那里的 while 循环需要保留,因为它正在检查用户是否输入了逗号。我需要整个程序从头开始循环,以便用户可以继续输入直到按 q。
    • 整篇文章是指您发布的内容吗?在这种情况下,将片段封装在第二个循环中(最好使用 do-while),并将 while 保留在其中。然后,使用我在接受您的输入的任何地方发布的 if 语句来打破循环。虽然它只会中断当前循环,但如果它在嵌套的 while 循环中,它不会退出整个部分。如果你想完全终止程序,你可以使用 System.exit(0);
    • 是的,我发布的内容。逗号检查和之后的解析。
    • 好吧,也许把它全部封装在一个do-while中,但在循环开始时初始化一个布尔退出。在有输入的嵌套 while 循环中,创建一个不使用 break 但如果 q 是输入则将 quit 设置为 true 的 if 语句。然后,在 while 循环之后,立即输入另一个 if 来检查 quit 的值。如果quit 为真,则break。这将打破主要的do-while。可能有一种更简单的方法可以做到这一点,但我现在想不出。
    • 这超出了我的想象!我只在这几个星期。我觉得这就像折磨。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多