このif文で何が問題なのか全くわかりません。lon = -3とlat = 7という値を送ったときにfalseを返すべきですが、そうではありません。このif文で何が問題になっていますか?
if (b < 0 && ((lon > 8 && lon < 0) || (lat > 8 && lat < 0)))
{
return false;
}
else
{
return true ;
}
このif文で何が問題なのか全くわかりません。lon = -3とlat = 7という値を送ったときにfalseを返すべきですが、そうではありません。このif文で何が問題になっていますか?
if (b < 0 && ((lon > 8 && lon < 0) || (lat > 8 && lat < 0)))
{
return false;
}
else
{
return true ;
}
私があなたの声明を正しく読んでいるなら、決して偽になることはありません。虚偽のlonを得るためには、私は0より小さくなければならず、8よりも多くなければなりません...それは不可能です。 latと同じ場合。各値を分解
...
int lon = -3;
int lat = 7;
if (b < 0 && // i don't know b value
((-3 > 8 && //false
-3 < 0) //true
|| (7 > 8 && //false
7 < 0 //false
)))
{
return false;
}
else
{
return true ;
}
それ= INTの経度をもたらす-3。 int lat = 7;
if (b < 0 && // i don't know b value
(false || false))
{
return false;
}
else
{
return true ;
}
、最終的には次のとおりです。
if (false)
{
return false;
}
else
{
return true ;
}
それはtrueを返します!
この論理にはこのif
の記述には瑕疵がありますが、ここではまだ学習するべきことがあります。代わりにif
声明を評価し、その後true
またはfalse
のいずれかを返す、あなたは少しそれをクリーンアップし、同じような何か行うことができます:どのように不平等オペレーターの仕事の、おそらくあなたの理解が、バック論理エラーに
return b < 0 && ((lon > 8 && lon < 0) || (lat > 8 && lat < 0))
を。 lon > 0 && lon < 8
のように、経度が0より大きく8より小さいと読むと、より意味をなさなくなります。
bの値は? – Peter4499
'(lon> 8 && lon <0)'と '(lat> 8 && lat <0)節は意味をなさない...つまり、決して' true'と評価されることはありません。 'lon'と' lat'は同時に8より大きく0未満である可能性がありますか? –
@AlexandreLucchesi回答が投稿されているはずです。なぜなら、 "これはif文で間違っています*" –