2015-03-13 75 views
-7

我必須將此For循環轉換爲while循環,而不是找到最繁忙的小時(最高整數),我需要找到最安靜的一個(最低整數)。我卡住了,不能弄明白。將此For語句轉換爲While語句?

public int busiestHour() 
    { 
     int busiest = hourCounts[0]; 
     for (int hour = 1; hour <= hourCounts.length - 1; hour++) 
     { 
      if (busiest < hourCounts[hour]) 
      { 
       busiest = hourCounts[hour]; 
      } 
     } 
     return busiest; 
    } 
+5

你試過了什麼?爲什麼失敗?你的嘗試代碼在哪裏?調試時發生了什麼?你還試圖調試什麼?您是否打印了任何聲明以幫助您瞭解流程?你有沒有嘗試用筆和紙寫下流程? – Kon 2015-03-13 15:25:17

+0

爲什麼'while'?無論如何,你必須掃描整個陣列,所以一個for可以工作得幾乎完全一樣。 – 2015-03-13 15:25:32

+0

這是功課嗎?如果是這樣,添加作業標籤,所以我們不知道爲什麼你可能想做一些可能做作的事情。 – 2015-03-13 15:28:18

回答

1

這應該可以做到。

public int quietesthour(int[] hourCounts) { 
    int hour = 1; 
    int quietest = hourCounts[0]; 

    while (hour < hourCounts.length) { 
     if (hourCounts[hour] <= quietest) { 
      quietest = hourCounts[hour]; 
     } 
     hour++; 
    } 

    return quietest; 
} 
1

提示 - 這兩個循環完全相同。事實上,第一個只是寫第二個的簡短方式。

for (int i = 0; i < 10; i++) { 
     System.out.println(i); 
    } 

    int j = 0; 
    while (j < 10) { 
     System.out.println(j); 
     j += 1; 
    }