2013-10-30 58 views
0

我有一個for循環,我試圖讓它增加5000年的銷售量,並打印計算10次,增加了佣金,但我不盡人意。 (這當然是在原始計算之後)爲什麼我的代碼不足?也是在我的第一個輸出後,我不能讓剩下的代碼運行。試圖添加一個循環

System.out.println("Enter your annual sales"); 
String annual = input.nextLine(); 

int salary = 7550281; 
int commission = 38_28; 
if (Integer.parseInt(annual) < 92416_02) { 
    commission = 37_28 * 1_32/100; 
} 
int compensation = Integer.parseInt(annual) * commission/100 + salary; 
System.out.println("compensation is: "+compensation); 

for(int sales = (Integer.parseInt(annual)); sales < 10; sales +=5000); 
int salary = 7550281; 
int commission = 38_28; 
if (Integer.parseInt(annual) < 92416_02) { 
    commission = 37_28 * 1_32/100; 
} 
int compensation = Integer.parseInt(annual) * commission/100 + salary; 

System.out.println("Your Annual compensation in 5000 increments are "); 
+0

所有的下劃線應該是小數點。 –

+1

for(int sales =(Integer.parseInt(annual)); sales <10; sales + = 5000);爲什麼在你之後有一個分號?我想你的意思是在for循環中有一段代碼? – Taylor

+0

這也許是他的錯誤。 –

回答

3

正確for循環語法是

for(int sales = (Integer.parseInt(annual)); sales < 10; sales +=5000){ 
    //code 
} 

for(int sales = (Integer.parseInt(annual)); sales < 10; sales +=5000); 

但我認爲你的邏輯需要一些工作。 sales對於此循環的多次迭代不會少於10次,因爲您每次都將5000次添加到該循環中。

+1

'for(smth; smth; smth);'是正確的Java語法。可能不是他想要的,但它*是*正確的語法。 –

+1

它當然是有效的語法,但在這種情況下它不正確。 –

+0

然後請澄清。有人可能會認爲Java不允許這樣做。另外,如果他想添加到「銷售」這是可行的 - 他只需要改變它(int在循環外聲明等)。不漂亮,但會工作。 –

1

另一個瞎猜,因爲你還沒有給我們你的錯誤消息:

int commission = 38_28; 

這些_的被編譯器忽略。他們只是there to make numbers easier to read。例如,你可以說:

int phoneNumber = 1_800_555_5555; 
int socialSecurityNumber = 123_12_1234; 

它等同於這一點,但可能更易於閱讀:

int phoneNumber = 18005555555; 
int socialSecurityNumber = 123121234; 

在你的情況,他們是毫無意義的,所以我會刪除。

可能是你想要的浮點數:

float commission = 38.28; 

而且,這個循環是非常可疑的,除了以分號結尾:

for(int sales = (Integer.parseInt(annual)); sales < 10; sales +=5000); 

事實上,如果sales < 10,你加是非常奇怪的。如果這就是這個循環實際上是應該做的,我會寫爲if聲明是減少混亂:

int sales = Integer.parseInt(annual); 
if (sales < 10) { 
    sales += 5000; 
} 

或許annual開出極爲消極的?