计数器达到限制后不会停止

时间:2017-09-11 18:59:04

标签: java

我正在为我的班级制作一个计数器,我们必须设置一个限制,当计数器达到一定数量时,但是当它完成时它会继续而不是停止。 我的老师也希望我们使用" Math.max(n,0)"但是,我不明白为什么我们会在if语句中使用它。

int i=1;
boolean ticking = true;
running:
while (ticking){

String tally = input.nextLine();           

if (tally.equalsIgnoreCase("z"))
{
    System.out.println(i++);
    continue running;
}
else if (tally.equalsIgnoreCase("x"))
{
    System.out.println(i--);
    continue running;
}
else if (i<=0 || i>=10)
{
    System.out.println("Cant go no more");
    continue running;
}

3 个答案:

答案 0 :(得分:2)

您没有指定循环退出条件。 <{1}}确实在循环期间从未设置为ticking

在这里,你应该允许循环退出,但你继续:

false

通过将else if (i<=0 || i>=10) { System.out.println("Cant go no more"); continue running; } 设置为ticking,您可以退出循环。 此外,如果您希望在递增或递减后此条件false现在为if时阻止再次循环,则应使用else-if语句而不是i<=0 || i>=10语句true
它会给:

i

作为附注,为什么要使用带标签的循环?
使用它是有意义的,因为你有嵌套循环,并且你想继续或打破外循环。

还有为什么要在每个条件语句的末尾添加if (tally.equalsIgnoreCase("z")) { System.out.println(i++); continue running; } else if (tally.equalsIgnoreCase("x")) { System.out.println(i--); continue running; } if (i<=0 || i>=10) { System.out.println("Cant go no more"); ticking = false; } 语句? continue语句不执行下一个条件语句,因为其中一个是if-else-if

  

我的老师也希望我们使用像“Math.max(n,0)”这样的东西,但是我   不明白为什么我们会在if语句中使用它。

我不确定得到它。
究竟是什么要求?
无论如何,true不会替换Math.max(n,0),因为最后一个条件会检查该值是否在最小和最大范围之间,而i<=0 || i>=10只会帮助您检查该值是否优于最大值

答案 1 :(得分:1)

达到极限后,您需要将滴答设置为false。

if (i<=0 || i>=10)
{
    ticking = false;
    System.out.println("Cant go no more");
}

答案 2 :(得分:1)

两件事:

在最后一个条件中的1-个陈述,即else if (i<=0 || i>=10)阻止仅在tally的值不等于"z""x"时才会执行

2-停止计数你需要设置滴答等于false:

else if (i<=0 || i>=10) {
    ticking = false;
    System.out.println("Cant go no more"); 
}

并且对于Math.max(n,0)我认为这将打印计数 喜欢

System.out.println("Total Count: "+Math.max(i,0));

你需要这样的东西:

        int i=1;
        boolean ticking = true;
        running:
            while (ticking){

            Scanner sc = new Scanner(System.in);
            String tally = sc.nextLine();           

            if (tally.equalsIgnoreCase("z"))
            {
                System.out.println(i++);
            }
            else if (tally.equalsIgnoreCase("x"))
            {
                System.out.println(i--);
            }
            if (i<=0 || i>=10)
            {
                ticking = false;
                System.out.println("Cant go no more");
            }
            continue running;

        }
    System.out.println("Total Count: "+Math.max(i,0));