我正在为我的班级制作一个计数器,我们必须设置一个限制,当计数器达到一定数量时,但是当它完成时它会继续而不是停止。 我的老师也希望我们使用" 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;
}
答案 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));