選択した目的の入力と出力に基づいてパラメーターの値を変更するコードのセクションがあります。したがって、以下の例では、球の体積を計算し、ユーザーが入力に使用した単位とユーザーが出力に選択した単位に応じて、それに応じて数値が操作されます。
私の問題は、すべてのifステートメントがfalseを返し、何が選択されているかに関係なく、(elseからの)数値10が通過することです。inputPrefとoutputPrefの値を出力しましたが、これらは「mm」と「cubic cm」(たとえば)とまったく同じように見えますが、ifステートメントではキャプチャされません。
明らかなエラーはありますか?2つの変数「inputPref」と「outputPref」は、それが役立つ場合は共有設定からロードされます。
double volumeBase = 4 * piDouble * radius * radius * radius / 3;
double volume;
if(inputPref.equals("mm") || outputPref.equals("cubic cm"))
{
volume = volumeBase / 1000;
}
if(inputPref.equals("mm") || outputPref.equals("cubic metres"))
{
volume = volumeBase / 1000000000;
}
if(inputPref.equals("cm") || outputPref.equals("cubic mm"))
{
volume = volumeBase * 1000;
}
if(inputPref.equals("cm") || outputPref.equals("cubic metres"))
{
volume = volumeBase / 1000000;
}
if(inputPref.equals("metres") || outputPref.equals("cubic mm"))
{
volume = volumeBase * 1000000000;
}
if(inputPref.equals("metres") || outputPref.equals("cubic cm"))
{
volume = volumeBase * 1000000;
}
else
{
volume = 10;
}