請幫忙看這個JAVA程式問題,JAVA高手幫幫忙~急

import java.io.*;

public class end

{

public static void main(String args[])throws IOException

{

BufferedReader buf;

String str;

int sum=0,i,oil,k,y,n,j=1;

float liter;

float count;

char data='*';

while(true){

while(j>sum)

{

buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print("請輸入油品型態(1、柴油 2、92無鉛汽油 3、95無鉛汽油 4、98無鉛汽油):");

str=buf.readLine();

oil=Integer.parseInt(str);

System.out.println("油品 " +oil+ "");

buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print("請輸入所要的公升數:");

str=buf.readLine();

liter=Float.parseFloat(str);

count=Float.parseFloat(str); System.out.println("公升數:" +liter+ "");

System.out.println("油品牌價");

if(oil==1)

{

liter*=28.5;

count*=28.5;

data='1';

}

else

if(oil==2)

{

liter*=32.5;

count*=32.5;

data='2';

}

else

if(oil==3)

{

liter*=33.5;

count*=33.5;

data='3';

}

else

if(oil==4)

{

liter*=34.5;

count*=34.5;

data='4';

}

switch(data)

{

case'1':System.out.println("柴油:28.5");

System.out.println("所需要柴油共:"+liter+"元");

break;

case'2':System.out.println("92無鉛汽油:32.5");

System.out.println("所需要92無鉛汽油共:"+liter+"元");

break;

case'3':System.out.println("95無鉛汽油:33.5");

System.out.println("所需要95無鉛汽油共:"+liter+"元");

break;

case'4':System.out.println("98無鉛汽油:34.5");

System.out.println("所需要98無鉛汽油共:"+liter+"元");

break;

}

if(liter<500)

{

System.out.println("無優惠:"+liter+"元");

}

if(liter>=500&&liter<1000)

{

count*=0.95;

System.out.println("折扣95折:"+count+"元");

}

else if(liter>=1000&&liter<2000)

{

count*=0.9;

System.out.println("折扣9折:"+count+"元");

}

else if(liter>2000)

{

count*=0.85;

System.out.println("折扣85折:"+count+"元");

System.out.print("\n");

}

System.out.println("共費用:"+count+"元");

buf=new BufferedReader(new InputStreamReader(System.in));

System.out.print("是否繼續 y/n:");

str=buf.readLine();

if(str.equalsIgnoreCase("y"))

{

sum+=j;

j+=1;

continue;

}

else if(str.equalsIgnoreCase("n"))

{

System.out.println("結束程式!");

System.out.println("共:"+j+"次");

System.out.println("總費用:"+count*j+"元");

System.out.println("平均費用:"+count*j/j+"元");

break;

}

}

break;

}

}

}

Update:

目前遇到的問題,執行繼續第二次!選擇其他油品後,計算後總結算會有問題,請問要如何修改呢!麻煩囉!謝~

Update 2:

System.out.println("共費用:" + count + "元");

oil_sum += count;

感謝大大回答,測試完次數多一次,金額多計算了一次

折扣部分計算我在修改看看

Update 3:

折扣部分已OK了,謝謝大大給我提示及靈感

float oil_count=0//在多宣告一個是折扣加總的金額

oil_count+=count;將則扣計算好的價格加進去,放在折扣判斷裡面

2 Answers

Rating
  • 9 years ago
    Favorite Answer

    String str;

    int sum = 0, i, oil, k, y, n, j = 1;

    float liter;

    float count;

    float oil_sum=0; //多宣告一個是油量加總的金額

    char data = '*';.........if (oil == 1) {

    liter *= 28.5;

    count *= 28.5;

    data = '1';

    oil_sum += count; //這邊將計算好的價格加進去

    } else if (oil == 2) {

    liter *= 32.5;

    count *= 32.5;

    data = '2';

    oil_sum += count; //這邊將計算好的價格加進去

    } else if (oil == 3) {

    liter *= 33.5;

    count *= 33.5;

    data = '3';

    oil_sum += count; //這邊將計算好的價格加進去

    } else if (oil == 4) {

    liter *= 34.5;

    count *= 34.5;

    data = '4';

    oil_sum += count; //這邊將計算好的價格加進去

    }..............if (str.equalsIgnoreCase("y")) {

    sum += j;

    j += 1;

    continue;

    } else if (str.equalsIgnoreCase("n")) {

    System.out.println("結束程式!");

    System.out.println("共:" + j + "次");

    System.out.println("總費用:" + oil_sum + "元"); //這邊總費用改成這樣做計算印出

    System.out.println("平均費用:" + oil_sum / j + "元"); //平均費用改成這樣做計算印出

    break;

    }以下是測試程式的資訊請輸入油品型態(1、柴油 2、92無鉛汽油 3、95無鉛汽油 4、98無鉛汽油):1

    油品 1

    請輸入所要的公升數:10

    公升數:10.0

    油品牌價

    柴油:28.5

    所需要柴油共:285.0元

    無優惠:285.0元

    共費用:285.0元

    是否繼續 y/n:y

    請輸入油品型態(1、柴油 2、92無鉛汽油 3、95無鉛汽油 4、98無鉛汽油):2

    油品 2

    請輸入所要的公升數:10

    公升數:10.0

    油品牌價

    92無鉛汽油:32.5

    所需要92無鉛汽油共:325.0元

    無優惠:325.0元

    共費用:325.0元

    是否繼續 y/n:n

    結束程式!

    共:2次

    總費用:610.0元 //總費用金額正確了

    平均費用:305.0元 //平均費用金額也正確了

    2011-06-01 13:40:41 補充:

    不過那只限於沒有打折 = ="

    剛剛跑了一下程式還是有點問題

    2011-06-01 13:43:02 補充:

    System.out.println("共費用:" + count + "元");

    oil_sum += count; //加入的程式碼

    • Login to reply the answers
  • 阿茂
    Lv 5
    9 years ago

    不知隔下count是不是拿來做總結?

    是的話你怎麼用乘的勒,照理說是用加的吧

    你的liter已經用乘的說

    • Login to reply the answers
Still have questions? Get your answers by asking now.