0

if + else if + else if...のいずれかが実行された場合、コードを実行したいと思います。

if(){
    ...
}else if(){
    ...
}else if(){
    ...
}
//run something if ANY of the above was executed

ifまたはごとに実行したい行を追加することelse ifもできますが、スパムが多すぎます。

私がしたことは次のとおりです。

temp=i;//store a copy
i=-1;//make the change

if(){
    ...
}else if(){
    ...
}else if(){
    ...
}else{
    i=temp//restore if none was executed
}

上記は、何に関係なく変更を適用し、この変更を。で元に戻しelseます。これは問題なく動作しますが、このコードの読みやすさが本当に心配です

私が見逃している他のもっと読みやすい選択肢はありますか?

4

2 に答える 2

1

ええと、あなたはいつでもすることができます

any=true;
if (...) {
} else if (...) {
} else if (...) {
} else {
  any = false;
  // or: return, if you are inside a function!
}
if (any) {
  // one of the ifs was executed.
}

関数を使用してこれをラップする場合returnは、最後のelseだけにすることもできます。それはおそらく最もクリーンなバージョンです。

于 2012-04-12T22:24:02.777 に答える
1

なぜ2つの変数が必要なのかわかりません。これはどう?

var conditionMet = true;

if(){
    ...
}else if(){
    ...
}else if(){
    ...
}else{
    conditionMet = false;
}

if(conditionMet){
    ...
}

読みやすくするために、ここでの主なことは、変数が実際に何を表しているかに応じて、変数の本当に良い名前を見つけることだと思います。

于 2012-04-12T22:25:37.667 に答える