2

if/elseこんにちは皆さん、私は割り当ての終わりに近づいています。私は常にJava の問題で立ち往生する傾向があります。ここに私の小さなスニペット:

// a taxi fare program where if pickup or drop off point is the airport
// and\or CBD the surcharge changes accordingly.

if(!pickup.equals("CBD") && !dropOff.equals("CBD")) {
    Surcharge = 15.0;
} else if (!pickup.equals("airport") && !dropOff.equals("CBD")) {
    Surcharge = 15.0;
} else if (!pickup.equals("airport") || !dropOff.equals("airport")) { 
    Surcharge = 10.0;
} else if (!pickup.equals("CBD") || !dropOff.equals("CBD")) {  
    Surcharge = 5.0;
} else {
    Surcharge = 0.0;
}

エラーにはなりませんが、正しくテストされていないようです。たとえば、"airport"ピックアップとして入れたが、ランダムな場所の場合dropOff、10 ドルのはずの場所に 15 ドルの追加料金が出力されます。しかし、"CBD"aspickupと airport を drop off にすると、$15 が正しく出力されます。これが十分に明らかでない場合は申し訳ありませんが、ここで初めてのタイマーです。私は週末を同様の問題に費やしましたが、これはかなり明白なものでした。if明らかに であるはずなのに、失敗しているようtrueです。

4

3 に答える 3

1

あなたは最初の条件を意味するピックアップとして空港を置きます

if(!pickup.equals("CBD") && (!dropOff.equals("CBD"))){ Surcharge = 15.0; }

有効です。ピックアップはCBDではなく空港なので。

それが役に立てば幸い。

于 2012-09-25T03:53:51.380 に答える
0

あなたのルールは英語で次のように書かれています。

  1. 中央ビジネス地区から完全に外れた旅行 -> $15
  2. それ以外の場合、空港を離れず、CBD に到着しない旅行 -> $15
  3. それ以外の場合、出発地または目的地が空港ではない旅行 -> $10
  4. それ以外の場合、開始または終了が CBD ではない旅行 -> $5
  5. それ以外の場合 -> $0。

それがあなたが望んでいたものかどうかを確認する必要があります。または、ロジックを確認できるように英語のルールを提供する必要があります.

まず、空港から任意の場所 (CBD 以外) への特定の移動には15ドルかかります - 上記のルール 1 を参照してください。

于 2012-09-25T03:57:27.293 に答える
0

平易な英語で言えば、最初の if ステートメントは次のようになります。

その人がCBDからピックアップされておらず、CBDに降ろされていない場合は、15ドルを請求してください.

その結果、ピックアップまたはドロップオフの場所が CBD でない場合 (それらの 1 つが空港であっても)、結果は 15 ドルになります。

ネガティブ テスト (例: 「ドロップオフまたはピックアップ場所が CBDでない場合」) の代わりにポジティブ テスト (例: 「ドロップオフまたはピックアップ場所CBD である場合」)を使用することで、問題にアプローチしやすくなる場合があります。

于 2012-09-25T03:54:08.120 に答える