不好意思~我是自己學的..網路上看一點用一點學的..只是這個while 後面的要怎嚜寫我不懂...
import java.io.*;
class work{
private double hrs;
int paya=75, payb=80, payc=170;
private double totalpay;
void newhrs(double hrs) {this.hrs =hrs;}
double gethrs() {return hrs;}
void newtpay(double totalpay) {this.totalpay=totalpay;}
double gettotalpay() {return totalpay;}
}
class maiin{
public static void main(String arg[])
throws IOException
{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("離開請案0 請輸入工作時數:");
double hour=Double.parseDouble(buf.readLine());
work a=new work();
a.newhrs(hour);
if(a.gethrs()<=7)
{
a.newtpay(a.gethrs()*a.paya);
}
else if(a.gethrs()<=10)
{
a.newtpay((10-a.gethrs())*a.payb+525);
}
else
{
a.newtpay((a.gethrs()-10)*a.payc+765);
}
System.out.println("工作"+a.gethrs()+"小時,薪資="+a.gettotalpay());
}while(XXXXX!=0);
}
}
XXXX要寫什麼?或是有什麼該改進的地方歡迎指導謝謝!!!
2006-10-15 14:49:50 · 2 個解答 · 發問者 ? 5 in 電腦與網際網路 ➔ 程式設計
其實你只要把 Double hour 這個參數移到 do while 迴圈之外,再用同一個參數來做這個迴圈的檢查條件即可。請參考我改的迴圈,藍色的是我有更動過的。double hour = 0.0D;do{ System.out.println("離開請案0 請輸入工作時數:"); hour=Double.parseDouble(buf.readLine()); work a=new work(); a.newhrs(hour); if(a.gethrs()<=7) { a.newtpay(a.gethrs()*a.paya); } else if(a.gethrs()<=10) { a.newtpay((10-a.gethrs())*a.payb+525); } else { a.newtpay((a.gethrs()-10)*a.payc+765); } System.out.println("工作"+a.gethrs()+"小時,薪資="+a.gettotalpay());}while(hour!=0);
2006-10-15 19:16:20 · answer #1 · answered by ? 7 · 0⤊ 0⤋
已經有人回答了,那麼我提供一下另一種解法供你參考。
1. 在do while()的條件式中修改成
do{
…...
}while (true);
這樣便可造成無窮迴圈
2.在輸入完變數hour的值後,加上下面這2行
if (hour == 0)
break;
所以若使用者輸入'0',便會馬上離開迴圈,就不會執行1次0小時的計算了。
2006-10-15 20:14:42 · answer #2 · answered by Nick 3 · 0⤊ 0⤋