走出while循环

时间:2017-10-18 14:05:21

标签: java do-while

我正在用java编写程序,用户输入成绩[A,B,C,D,F]。他们不能提及类的数量,所以如何在完成后退出while循环。

do {
  System.out.println("Enter your grades for all the subjects: ");
  String sub1 = input.nextLine();
}
while (<condition>);

我想了解我可以使用哪种&lt; condition&gt;

2 个答案:

答案 0 :(得分:2)

TLDR;如何要求他们输入Q退出?

前言

这个答案高度自以为是,因此

  1. 它本质上并不详尽,因此不具有确定性。
  2. 并不真正符合SO政策以避免自以为是的答案
  3. 我选择在这种情况下给出一个自以为是的答案,因为初学者程序员正在努力解决我将要讨论的一些主题,希望这个答案可以作为指导。

    下面的探索旨在为您(OP)提供一种方法来探索有关所提问题的解决方案,并希望扩展您对未来如何攻击软件设计和软件开发的理解。

    序言

    我们首先假设(讽刺的是)你的原始问题陈述可能类似于:

      

    编写一个程序,接受用户的成绩,然后...... 用它做某事,例如计算用户的总体/平均成绩

    虽然问题陈述定义了明确的要求,但是作为软件设计师,您必须制定并使用它们来创建软件,这也有许多隐含的要求。

    因为,他们没有明确定义,他们(很大程度上)由你来决定你做出的(美学?)设计选择。

    所以,让我们直接进入: - )

    我们的(第一个)解决方案

    让我们从我们所处的位置开始吧。我们做了一些假设来确定我们的设计,因此我们的计划:

    • 假设:我们的用户一次输入成绩
    • 假设:一旦她完成成绩,她就想要她的成绩

    在第二个假设中,隐含的假设是她表明她已经完成了成绩。

    在这种情况下,我们的步骤可能类似于:

    DO 
         INPUT GRADE OR DONE INDICATOR
         IF DONE 
              BREAK OUT OF LOOP
         END IF
         STORE GRADE 
    LOOP
    
    CALCULATE AVERAGE
    SHOW RESULTS
    

    不同的解决方案

    但是,我们可以做出不同的假设:

    • 假设:我们的用户希望一次输入一个成绩
    • 假设:她希望看到一个平均值
    • 假设:她并不关心完成任务,但可能希望重置平均值

    现在我们的计划可能如下:

    DO 
         ASK FOR A GRADE OR RESET
         IF RESET 
            RESET THE AVERAGE
         ELSE
            ADD GRADE TO CALCULATED AVERAGE
         END IF
         DISPLAY AVERAGE         
    LOOP
    

    关于上述解决方案

    正如您所看到的,我们最终对此问题做出了大量假设,以尝试确定用户希望从我们的软件中体验到的内容。

    还有另一个相当明显的假设,即我们做出的内容也是隐含的,即我们的 PROCESS GRADE 步骤定义得非常好,用户我们可以简单地编程用户对其的输入。

    更多指示(选择,选择,选择)

    然后我们可以采取与上述完全不同的假设和指示。需要考虑的一些例子:

    • 她想要一些看起来像计算器的东西
    • 她希望分批进入成绩
      • 可能有不同的尺寸
      • 可能是IDENTICAL尺寸
    • 她希望提供有关如何计算结果的参数(加权平均值?)
    • 可能是因为她要处理100,000,000个成绩

    缩小范围

    那么,我们如何选择哪一个?那么这个问题也有很多有效的答案。

    在试图找出您将要采取的设计方法时,请考虑这些非技术性(常识性)因素:

    • 用户的期望
      • 看看用户如何使用类似的程序,他们期望什么?
      • 如有疑问,请询问用户
      • 然而,请记住古老的格言,
          

        &#34;如果你制作一个即使是傻瓜也可以使用的程序,只有傻瓜会使用它&#34;

    • 易于编程
      • 对于特定问题,您的方法是否过于复杂?
      • 你能否在6个月后理解你的设计选择(如果你没有记录它们 - baaad想法,但仍然)
    • 有人(包括你)在乎吗?
      • 制作一些东西,通常如果你保持简单,没有人会关心你做出的假设

    正如你所看到的,这是非常主观的,你作为一个软件设计师有很多权力(并且每个Ben叔叔)因此有很多责任,为你的用户和你自己做出明智的选择。

    结束语

    我上面的所有想法都是为了帮助您开始思考软件开发的价值观和原则。您可以创建自己的,或采用现有的一个,并使其成为您自己的。我建议,至少要看一些已经出现的软件开发方法,这些方法可以解决我所涉及的一些主题。即使你不了解所有的技术细节,只要看到它们的50,000英尺就可以帮助你完成任务

    并关注网络兔子洞。

    Bon-chance年轻的padawan和快乐的编码: - )

答案 1 :(得分:1)

执行此操作的常用方法是在您完成后在Windows上的mac / unix系统/ SAP DBTech JDBC: [277]: not a GROUP BY expression: The function STDEV is not supported aggregate function or ... 上按crtl-d。 如果这符合您的需要,您可以这样做:

ctrl-z