- ベストアンサー
条件が多い場合のif文の条件をすっきりさせる方法
nak777rの回答
- nak777r
- ベストアンサー率36% (49/136)
#define AAA_1 1 #define AAA_8 8 #define chk(A,B) (((A)<=AAA_8)&&((B)[((A)-(AAA_1))]=='1')) if(chk(a,"11110011")){ } if(chk(a,"11111100")){ } if(chk(a,"11111001")){ }
関連するQ&A
- if文の条件に関数が入ってる場合はどうなりますか
if文の条件の中に、関数が入っていました if (bit(exp,ps)){ res = (res*res); } このような感じです ちなみに、関数bitはこのようになっていました int bit(unsigned int exp, int ps){ return ((exp >> ps) & 1); } この場合、どういう条件のif文になるんでしょうか 「関数bitのリターンがあれば実行」ということでしょうか
- ベストアンサー
- C・C++・C#
- if [ 条件式 ]とif[[ 条件式 ]]
シェルスクリプトでのif [ 条件式 ] と if [[ 条件式 ]] の違いについて教えてください。 以下のシェルスクリプトを実行すると、 意図したとおり、111 と出力されます。 =========▼▼(ここから)▼▼========= #!/bin/sh AAA=yes if [[ "$AAA" = [yY]* ]] then echo 111 else echo 222 fi =========▲▲(ここまで)▲▲========= 上記、スクリプト3行目の if [[ "$AAA" = [yY]* ]] の部分を if [ "$AAA" = [yY]* ] というように、角カッコ 1重にすると、 エラーは発生しませんが、 222と表示されます。 if [ 条件式 ] と if [[ 条件式 ]] の違いについて教えていただけないでしょうか。
- 締切済み
- その他([技術者向] コンピューター)
- if文で困っています。
define A 5 void main(void) int i; scanf("%d", &i); if (i <= A){ このような形をつくったのですが、if文のところで質問があります。 「数字をいくつか入力し、その入力したデータ数が5つより少ないときに・・・」というようなプログラムにしたいのですが、この場合、「入力した数値が5.0以下であるときに・・・」というプログラムになっているのではないかと、困っています。どちらが正しいのでしょうか?
- ベストアンサー
- C・C++・C#
- エクセルVBAについて
お世話になりなります。 以下のように条件が合わない場合、何もせずにNの値を増やして同じくIF文で判断する場合 ***にどのように書けばいいのでしょうか? よろしくお願いします。 Sub ボタン1_Click() Dim a As String For n = 1 To 30 a = Cells(n, 1) aa = Left(a, 1) aaa = Val(aa) If aaa = "" Then *** If aaa <= cha(30) Then *** If aaa >= cha(40) Then *** Else Cells(n, 3) = a Next End Sub
- ベストアンサー
- その他(プログラミング・開発)
- 複数の条件があった場合の条件式について
エクセルで期間を計算し。 2日以内の場合、期間×100 3日以上6日以下の場合、期間×200 7日以上9日以下の場合、期間×300 10日以上13日以下の場合、期間×400 14日以上20日以下の場合、期間×500 21日以上31日以下の場合、期間×600 1ヵ月以上2ヵ月以下なら、期間×700 2ヵ月以上3ヵ月以下なら、期間×800 上の条件もに基づいた、条件文を作りたいのですが、 IF文でひたすら、作っていくと、引数エラーになりました。 何か良い方法をご存じの方がおりましたら、 お知恵をお貸しいただければ幸いです。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセル IF関数 複数条件?
いつもお世話になります IF関数で複数条件を記入する場合 現在は =IF(AND(A16="aaa",H16>=81),H16-80,IF(AND(A16="aaa",H16>=1),H16+80,IF(AND(A16="bbb",H16>=81),H16-80,IF(AND(A16="bbb",H16>=1),H16+80,H16)))) と やたらと長い条件設定になっています 結果は正しいのですが、もっとスッキリ出来る方法を教えて頂きたいのです。
- ベストアンサー
- オフィス系ソフト
- 条件が複数ある場合のif文の書き方
条件が一つだけの時は上手く動いたのですが、条件を複数にした場合はどう書いたらいいのかわからず、質問させていただきました。 『おしえて!!ACTION SCRIPT』という本を見ながら、Flashを作っています。 その中ではif文の書き方は if(条件式が正しかったら){ 実行するスクリプト; } となっていますが、変数が複数あって、そのすべてが合致しないと指定のフレームに飛べないようにするためにはどう書いたらいいでしょうか? if(a==1){ gotoAndPlay(2); } if(b==1){ gotoAndPlay(2); } if(c==1){ gotoAndPlay(2); } と、続けて書くとa=1の時点でフレーム2に進んでしまうことになりますよね? そうでなく、a.b.c全ての変数が1の場合に、フレーム2に飛ぶようにしたいのです。 よろしくお願いします。
- ベストアンサー
- Flash
- 条件分岐(if)について
条件分岐(if)についてお聞きしたことがあります。 例えば if($a == 'A' || $a == 'B'){ 処理 }else if($a == 'C' || $a == 'D' || $a == 'E'){ 処理 }............... といった条件分岐があったとて、お聞きしたいことが2点あります。 ・条件分岐この後も数十個続いたとします。その場合もelse ifで一つ一つ 条件を書かなければならないのでしょうか? ・条件式if($a == 'A' || $a == 'B'....)が長くなる場合プログラムが見にくくなるので 別途に条件式を書いておいてif文の所では($a == ◯)といったように簡潔に書くことは できないのでしょうか? 宜しくお願いします。
- ベストアンサー
- PHP
- 条件の配列
表題の件に付いて質問させていただきます。 複数の条件分岐を簡便に記述する方法を探しております。 簡単な例でいいますと、 int main(){ int value=3; if(value==0)std::cout <<"value="<<0 <<std::endl; if(value==1)std::cout <<"value="<<1 <<std::endl; if(value==2)std::cout <<"value="<<2 <<std::endl; if(value==3)std::cout <<"value="<<3 <<std::endl; } 上記プログラムの複数の条件分岐をfor文をもちいてかきかえる場合、conditionクラスを作成して class condtion{ private: int *a; int b; public void SetPointer(int* value){a=value} void SetVal(int val){b=val} bool isTrue(){ if(*a==b){return true;} else{ return faulse;} } } int main(){ int value=3; condition c[4]; //クラス for(int i=0;i<4;i++){ c[i]->SetPointer(&value); c[i]->SetVal(i); } for(int i=0; i<4; i++){ if(c[i].isTrue())std::cout<<"i="<<i<<std::endl; } } と実装できそうな気がするのですが、(上記プログラムは動作確認しておりません。) 変数が増えたり、条件が複雑になると少々繁雑になってしまいそうな気がしております。 もっと簡便に条件分岐を配列として処理する方法は存在しますか? 関数ポインタなどがつかえるのでしょうか? アドバイスよろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- 条件構文の基本的な扱いについて
利用環境:php5:Winxp(sp2) ●以下のように二つの条件を満たしていたらの 処理をしたいのですが意図した結果が得られません。 <?php $a = 'aaa'; $b = 1; $bbb = 1; if (($a === 'aaa') and ($b === '$bbb')){ print('$aと$bは共に条件を満たしています。'.'<br />'); } else{ print('$aと$bは共に条件を満たしていません。'.'<br />'); } ?> ●意図する結果は、 $aと$bは共に条件を満たしています。 なのですが、うまく行きません。 原因と、Bestな書式を指導いただけないでしょうか。
- ベストアンサー
- PHP