English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

不好意思~我是自己學的..網路上看一點用一點學的..只是這個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 電腦與網際網路 程式設計

2 個解答

 其實你只要把 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

fedest.com, questions and answers