八歩目 if のいい使い方

 

〜if の効率化〜
    シューティングゲームなんかを作るとき
    「あれがこうで これもこうで」 と たくさん if を使うことがあります
    そんなときこんな使い方もあるんだな↓
      

	a=8:n=100
	if (a=8) and (n=100):mes "ヤッホー"
	if (a>7) or (n=0):print "ややこやしいな"	
	stop

    この場合 
      どっちのifも成立する
    and とは 「aが8で さらに nが100なら いい」 ということで
    aが8でなければ実行されず さらにnが100じゃないと実行されない
    つまり 2つとも(a=8 と n=100 が)
      満たされていないと :より右は実行されない

    or は  「aが7以上(いじょう) それか nが100ならいい」 ということ
    aが7より大きいか それか nが0なら実行される
    つまり どちらかが満たされていればいい
    ということだ

条件が満たされたとは・・・
   例えば aは1だとして
   if a=1:
   としたとき  ちゃんと : の右の命令は実行される
   このとき if条件が満たされた と言う
   簡単に言うと if を使って :より右の命令が実行されたときのことだ

    もちろんこういう風に
 

      if (a=1)and(b=1)and(c=1)and(d=1)and(e=1):
      if (a=1)or(b=1)or(c=1)or(d=1)or(e=1):

                   
    何個でも and も or もつかってもいい
 
    ここで ちょっと難しくしてみよ

	a=1:b=5
*saisyo
	if (a=5) and (b=6):goto*owari	
	if a<5:a=a+1
	if (a=5) and (b!6):b=b+1:a=1
	goto*saisyo
*owari
	stop

  
   *注意・・・これは実行しないで下さい (まぁ別にしてもいいけど)
          パソコンに影響(えいきょう)が出ることがあります(フリーズ)
   まだやってない 命令を使えば 実行していいが・・・ やめとこ
         
   じゃあ説明ね
   最初のifは aが5でbが6なら*owariへ行ける
   次は aが5より小さければ aに1をたす
   で次は aが5で bが6でなければ bに1をたして aを1にする
   goto*saisyo で *saisyoに行く
   もっと詳しく言うと
   最初はaは1だよね だからifで aが どんどん増えていく 
   そして5になると aを1にして bを6にします
   そしてまた aが たされていって
   aが5になると一番上のifで aが5 bが6 だから
   goto*owari が実行されて *owari へ行って stopで止る
    
   別にこれは 分からなくていいです
   むしろ分かったら結構すごいよ!
 

まとめ・・・

     and・・・if で使う  と

     or・・・if で使う または  

戻る コウザへ ホームへ 次へ