-4

出来ますか?

例えば:

z = something;
w = something else;

if (x == z && y == z){
   Do something;
} or if (y == w){
   Do something else;
or if...
or if...

基本的に私が欲しいのは、より簡単な書き方です:

if (x == z && y == z){
   Do something;
else if (x == z && y == w){
   Do something else;
if else...
if else...

毎回 x と z を比較するわけではありません (そして、それがより単純なものでない限り、複数の if を使用するなど、最も明白なものではありません)

4

5 に答える 5

6

if/else を入れ子にしたいだけのようですね。

if (x == z) {
    if (y == z) {
        ...
    } else if (y == w) {
        ...
    } else {
        ...
    }
} else {
   ...
}
于 2012-12-06T19:42:07.337 に答える
2

最初に確認してくださいx!=z

if (x != z)
{
  // maybe do nothing?
}
else if(y == z)
{
  // Do something;
}
else if (y == w)
{
}

または入れ子:

if (x == z)
{
  if(y == z){
    Do something;
  }
  else if (y == w){
  }
}
于 2012-12-06T19:43:28.973 に答える
1
switch (expression)
{
   case constant-expression:
      statement
      jump-statement
   [default:
      statement
      jump-statement]
}
于 2012-12-06T19:40:23.450 に答える
0

比較を1回実行して、結果をローカルブール変数に保存できます。次に、ifステートメントでそのブール値を使用します。

bool b = (x==z);
if (b && y == z){
    Do something;
else if (b && y == w){
    Do something else;

ただし、他の人が推奨している場合は、ネストを実行します。

于 2012-12-06T23:25:31.410 に答える
0

比較の順序を入れ替えるだけです:

if (y == z && x == z)
{
   Do something;
}
else if (y == w && x == z)
{
   Do something else;
}
else if ...
else if ...

x は、ショートサーキットのおかげで、最初の条件が真の場合にのみ z と比較されます。

于 2012-12-06T19:40:48.267 に答える