2012-09-10 63 views
0

我想在for循環中添加兩個浮點數,並且它告訴我'+'沒有影響。我試圖使它通過兩個範圍的每個incrememnt口(.25)(begrate和endrate)(1和2),1 + 0.25工作不正常解析,我得到一個無限循環加法運算符沒有影響

float begrate,endrate,inc,year=0; 

cout << "Monthly Payment Factors used in Compute Monthly Payments!" << endl; 
cout << "Enter Interest Rate Range and Increment" << endl; 
cout << "Enter the Beginning of the Interest Range: "; 
cin >> begrate; 
cout << "Enter the Ending of the Interest Range: "; 
cin >> endrate; 
cout << "Enter the Increment of the Interest Range: "; 
cin >> inc; 
cout << "Enter the Year Range in Years: "; 
cin >> year; 

cout << endl; 

for (float i=1;i<year;i++){ 
    cout << "Year: " << "  "; 
    for(begrate;begrate<endrate;begrate+inc){ 
     cout << "Test " << begrate << endl; 
    } 
} 
system("pause"); 
return 0; 
+0

'A + B'不修改'了'(或'B')。這是合乎邏輯的。有一組複合賦值操作符會影響'a'。 – chris

+2

您可能想使用begrate + = inc而不是begrate + inc – drescherjm

+4

也是您真的想要一年成爲一個浮動嗎?如果有人輸入1.5,則使用此計算不會得到所需的答案。 – drescherjm

回答

4

你可以使用+ =代替+的,因爲這將設置begratebegrate+inc。更好的解決方案是有一個臨時循環變量,開始時等於開始,然後增加它。

for (float i=1;i<year;i++){ 
    cout << "Year: " << "  "; 
    for(float j = begrate;j<endrate;j+=inc){ 
     cout << "Test " << j << endl; 
    } 
} 
+0

感謝您的幫助,我本應該抓住這一點! – Intelwalk

7

這是因爲begrate + inc對begrate的值沒有影響。 +運算符不像++運算符。您必須將結果分配給某個具有效果的內容。什麼你想是這樣的:

begrate = begrate + inc 

或者

begrate += inc 
3
Just replace the following line 

for(begrate;begrate<endrate;begrate+inc){ 


with 

for(begrate;begrate<endrate;begrate+=inc){ 

通知begrate * + = * INC這裏