2016-03-06 30 views
1

我需要創建一個用於創建以下輸出一個JavaScript(認爲它作爲學費優惠券簿)**每分配方向**for循環(但一個變量需要一個if)

  • 0級,教室1,第1個月
  • 0級,教室1月2
  • 1年級教室1月1

級將增加多達8個,課堂會增加最多3個,一個月就增加了到9.

我遇到的問題是「0級學費每月需要80元」,而「1 - 8年級每個月60元」。

我如何解釋我的循環代碼中的不同學費?以下是我迄今爲止...提前

var grade = 0; 
 
var rooms = 1; 
 
var month = 1; 
 
var tuition = 60; 
 

 
for (grade = 0; grade <= 8; grade++) { 
 
    for (rooms = 1; rooms <= 3; rooms++) { 
 
    for (month = 1; month <= 9; month++) { 
 
     document.write("Grade# " + grade + " Classroom# " + rooms + " Month: " + month + " Tuition $" + (tuition * grade) + "<br/>"); 
 
    } 
 
    } 
 
}

感謝。

回答

1

只要檢查分數,並制定出學費。

var grade = 0; 
var rooms = 1; 
var month = 1; 

function getTuition(grade) { 
    // Will return 80 if grade is less than or equal to 0 
    // otherwise it will return 60 
    return grade > 0 ? 80 : 60; 
} 

for (; grade <=8; grade++) { 
    for (; rooms <=3; rooms++) { 
     for (; month <=9; month++) { 
      document.write("Tuition $" + getTuition(grade) + "<br/>"); 
     } 
    } 
} 
+1

可能希望三重檢查您的比較運算符,因爲它不會執行您所說的操作。 '等級> 0?無論如何,60:80'都比較簡單。 – Oka

+0

@噢,是的,愚蠢的錯誤,謝謝。 –

2

後的第一個加入這個tuition = ...行循環開始:

for (grade = 0; grade <=8; grade++) { 
    tuition = grade ? 60 : 80; 

這將檢查等級爲非零。如果是這樣的話60,否則80.那個值是放在學費變量中。

1

如何把房間和月環代碼放到一個函數,該函數的檔次和學費作爲參數:

function writeInformation(grade, tuition) { 
     var rooms, month; 
     var cost; // to track total cost of tuition. 
     for (rooms = 1; rooms <= 3; rooms++) { 
      for (month = 1; month <= 9; month++) { 
       cost = tuition * month; 
       document.write("Grade# " + grade + " Classroom# " + rooms + " Month: " + month + " Tuition $" + cost + "<br/>"); 
      } 
     } 
    } 

然後,我們可以重用以考慮不同等級的功能和學費。

var grade = 1; 
    writeInformation(0, 80); // grade 0, tuition 80 

    // grades 1-8, tuition 60 
    for(grade = 1; grade <= 8; grade++) { 
     writeInformation(grade, 60); 
    } 

有了這個,您可以避免使用if語句來檢查是否根據等級或其他因素來更改學費。

+0

謝謝大家,我和David Barker一起解決了問題。經過一些測試和大腦霧化後,我可以根據需要使其完美工作。真的很感謝你的幫助。 –

相關問題