![](/img/trans.png)
[英]In Java, is it possible to execute a method for a period of time and stop after it reaches the time limit?
[英]counter does not stop after it reaches the limit
我正在為我的班級做一個計數計數器,我們必須為計數器達到一定數量設置一個限制,但是當計數器達到一定數量時它將繼續運行而不是停止。 我的老師還希望我們使用“ 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;
}
您沒有指定循環退出條件。 在循環中, ticking
的確從未設置為false
。
在這里,您可能應該允許循環退出但繼續:
else if (i<=0 || i>=10)
{
System.out.println("Cant go no more");
continue running;
}
通過將ticking
設置為false
可以退出循環。 此外,如果要防止在這種情況下i<=0 || i>=10
再次循環,則應使用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
語句不執行下一個條件語句,因為其中一個為true
。
我的老師還希望我們使用“ Math.max(n,0)”之類的東西,但是我不明白為什么我們要在if語句中使用它。
我不確定。
確切的要求是什么?
無論如何, Math.max(n,0)
不會替換i<=0 || i>=10
i<=0 || i>=10
因為這最后一個條件檢查該值是否在最小和最大范圍之間,而Math.max(n,0)
僅幫助您檢查該值是否不超過最大值。
達到上限后,您需要將滴答設為false。
if (i<=0 || i>=10)
{
ticking = false;
System.out.println("Cant go no more");
}
兩件事情:
你的最后一個條件即內部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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.