SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

CGI-Perl 基礎編 (その二) 制御構造(判定、ループ) if、for、foreach、while

■条件式

  ==       等しい
  !=       等しくない
  <        より小さい
  >        より大きい
  <=       以下
  >=       以上
  <=>      0 等しい, -1 右大, +1 左大

  eq       文字列比較 - 等しい
  ne       文字列比較 - 等しくない
  lt       文字列比較 - より小さい
  gt       文字列比較 - より大きい
  le       文字列比較 - 以下
  ge       文字列比較 - 以上
  cmp      文字列比較 - 0 等しい, -1 右大, +1 左大

  &&       and と同じ
  ||       or  と同じ
  !        not と同じ
  and      かつ   (論理積)
  or       または (論理和)
  xor      排他論理和(エクスクルーシブオア)
  not      否定

■if () 文    判断

  if (条件) {
    条件が真のとき
  }
  else {
    条件が偽りのとき
  }

  数値 1, 2 などは、C と同じく TRUE(真) 扱いである。
  0 は FALSE(偽り)。(TRUE、FALSE は、予約語にないみたい。)

  if ($a == 1) { $b = 2; }

  if ($a == 1) {
    $b = 2;
  }

  if ($a) {
    #// $a が 2 でも真になるので注意
    $b = 2;
  }

  if ($a == 1 && $b == 2) {
    $c = 1;
  }

  if (index($a, 'key') != -1) {
    $c = 1;
  }

  if (($i = index($a, 'key')) != -1) {
    $c = substr($a, $i, length('key'))
  }

  最後の代入結果を評価の対象にする構文は C ではよく見かける。
  これができるのって、C と Perl だけかな?

■case ()  多重判定

  なんだか、ややこしい構文組み合わせでないと実装できないみたい。
  不便だけど、スクリプト程度なら if() でなんとかなる。

■for ()   ループ

  for (初期値; 条件; 増分) {
    last; #// ループ脱出
    next; #// 次のループへ
  }

  for ($i = 1; $i <= 10; $i++) {
    $a[$i] = 2;
  }

  for ($i = 1, $j = 1; $i <= 10 and $j == 5; $i++, $j++) {
    $a[$i] = ++$j;
  }

  foe (;;) {
    #// 無限ループ
  }

■foreach () ループ

  foreach (配列変数) {
    $_    #// 配列要素
    last; #// ループ脱出
    next; #// 次のループへ
  }

  foreach (@a) {
    $_ = 1;
  }

  これって、Perl 5.003 以降と書いてある。(^^;
  げっ、いっぱい使ってしまったある。(^^;
  でも、おかしいな〜。確かに Perl 4 の英語版をインストしたはずなのに...
  正常に動作してるぞ。(^^;

■while () ループ

  while (条件) {
    条件が真のときループ
    last; #// ループ脱出
    next; #// 次のループへ
  }

■until () ループ

  until (条件) {
    条件が偽りのときループ
    last; #// ループ脱出
    next; #// 次のループへ
  }

■do ()    ループ

  do {
    条件が偽りのときループ
    last; #// ループ脱出
    next; #// 次のループへ
  } until (条件);

  ループが一度は必ず実行される。

■exit     脱出

  exit;    #// Perl 脱出
  return;  #// 関数脱出

■CGI-Perl 基礎編資料
■CGI-Perl 基礎実地編資料
■CGI-Perl 応用実地編資料
■PHP 基礎編資料
■PHP + MySQL 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK