<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/air-lang/">
    <title>AIR-Lang@Wiki</title>
    <link>http://w.atwiki.jp/air-lang/</link>
    <atom:link href="https://w.atwiki.jp/air-lang/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>AIR-Lang@Wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-02-26T01:20:47+09:00</dc:date>
    <utime>1267114847</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/56.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/54.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/53.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/44.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/43.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/42.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/41.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/40.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/39.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/air-lang/pages/38.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/56.html">
    <title>条件分岐と繰り返し</title>
    <link>https://w.atwiki.jp/air-lang/pages/56.html</link>
    <description>
      ** 条件分岐

- if文の例です。この例では、中括弧 { } は省略可能です。また、elif は else if としても同じです。
  # 電源ラインの周波数を調べます。
  if( addr==&quot;東京&quot; )
      freq=&quot;50[Hz]&quot;
  elif( addr==&quot;大阪&quot; )
      freq=&quot;60[Hz]&quot;
  else
      freq=&quot;??[Hz]&quot;

- switch文の例です。swch と deft は省略形のキーワードです。(switchとdefault)
条件は複数指定できます。また、アスタリスク * は全てにマッチします。
  # 上場企業を分類します。
  swch( market,grade ){
      case &quot;東証&quot;,&quot;1部&quot;: print(&quot;東証一部上場企業です。&quot;); break;
      case &quot;東証&quot;,&quot;2部&quot;: print(&quot;東証二部上場企業です。&quot;); break;
      case &quot;東証&quot;,  *  :
      case &quot;大証&quot;,  *  :
      case &quot;名証&quot;,  *  :
      case &quot;福証&quot;,  *  :
      case &quot;札証&quot;,  *  : print(&quot;  上場企業です。&quot;); break;
      deft:              print(&quot;非上場企業です。&quot;); break;
  }

- 3項演算子の例です。
  # 改行コード又は区切り記号を出力します。
  puts( last?&quot;\n&quot;:&quot;,&quot; )

** 繰り返し

- loop文の例です。最初に数(整数)を評価して、その数(整数)だけループ本体を実行します。
無指定時には、無限ループとなります。
  # アスタリスクを80個出力します。
  loop(80)
     putc(&#039;*&#039;)

- while文の例です。ループ毎に条件式を前評価して、TRUE等である限り繰り返しループを実行します。
  # 標準入力を行毎に行末まで読み込みます。
  while( line=gets() ){
      ;
  }

- while文のバリエーションとして、ループ毎に条件式    </description>
    <dc:date>2010-02-26T01:20:47+09:00</dc:date>
    <utime>1267114847</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/54.html">
    <title>変数値の簡易表示</title>
    <link>https://w.atwiki.jp/air-lang/pages/54.html</link>
    <description>
      変数値の簡易表示には、関数 p() が便利です。関数 p() は、引数の種別・個数などに制約はありません。
  p(x)                                     # 変数 x の値を表示します。
  p(a,b,c)                                 # ３つの変数 a b c の値を一括表示します。
  p(ARGV)                                  # 配列 ARGV[] の全要素の値を一括表示します。
  
  p(2.0*M_PI*r)                            # 式 ２πr の値を計算して表示します。

変数名をそのまま直接入力すると、関数 p() が自動実行されます。
これは、対話モード時に便利ですが、実行モードに制約はありません。
  % air -i                                 # AIR を対話モードで立ち上げます。
  AIR&gt; x                                   # p(x) と同じです。
  AIR&gt; a,b,c                               # p(a,b,c) と同じです。
  AIR&gt; ARGV                                # p(ARGV) と同じです。

&amp;br()
&amp;br()
&amp;br()    </description>
    <dc:date>2009-12-24T14:21:13+09:00</dc:date>
    <utime>1261632073</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/53.html">
    <title>ファイルポインタ</title>
    <link>https://w.atwiki.jp/air-lang/pages/53.html</link>
    <description>
      * (事前定義済みの)ファイルポインタ

| 名前   | 別名   | 意味           |
| STDIN  | stdin  | 標準入力       |
| STDOUT | stdout | 標準出力       |
| STDERR | stderr | 標準エラー出力 |
| DATA   | data   | スクリプトプログラム内の埋め込みデータ読み込み用 ※ |

※スクリプトプログラム内に埋め込みデータが存在する時のみ有効。それ以外は無効(未定義)。
埋め込みデータの開始は __DATA__ __data__ :D[ATA] :d[ata] のいずれかで指定する。
  ans=0
  while(str=gets(DATA)){                # __DATA__ 以降を1行ずつ読み込み、変数 str に代入します。
      ans+=int(str)                     # その内容を整数に変換して変数 ans に加算します。
  }
  print(&quot;Answer=%d\n&quot;,ans)              # Answer=603 が表示されます。
  __DATA__
  100
  200
  303

* (一般ファイルの)ファイルポインタ

ファイル名(の文字列)を保持する変数を、ファイルポインタと見なしてファイルI/Oを実行して下さい。
正確な(内部的な)ファイルポインタの取扱いは、以下の通りです。

+ 最初のファイルI/O実行時には、対象ファイルが自動的にオープンされ、オープンされたファイルポインタが元の変数の専用領域にセットされます。そして、そのファイルポインタを用いて最初のファイルI/Oが実行されます。
+ ２回目以降は、元の変数が既に持っている(オープン状態にある)ファイルポインタを用いてファイルI/Oが実行されます。
  fname=&quot;/etc/passwd&quot;                   # ファイル名を文字列で変数 fname にセットします。
  while(str=gets(fname)){               # 対象ファイルをオープンし1行ずつ読み込み変数 str に代入します。
     </description>
    <dc:date>2009-12-09T22:20:11+09:00</dc:date>
    <utime>1260364811</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/44.html">
    <title>D</title>
    <link>https://w.atwiki.jp/air-lang/pages/44.html</link>
    <description>
      ** &#039;D&#039; = Double Type (実数型)    </description>
    <dc:date>2009-01-30T14:52:38+09:00</dc:date>
    <utime>1233294758</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/43.html">
    <title>S</title>
    <link>https://w.atwiki.jp/air-lang/pages/43.html</link>
    <description>
      ** &#039;S&#039; = String Type (文字列型)    </description>
    <dc:date>2009-01-30T14:51:43+09:00</dc:date>
    <utime>1233294703</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/42.html">
    <title>A</title>
    <link>https://w.atwiki.jp/air-lang/pages/42.html</link>
    <description>
      ** &#039;A&#039; = Array Type (配列型)    </description>
    <dc:date>2009-01-30T14:50:48+09:00</dc:date>
    <utime>1233294648</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/41.html">
    <title>I</title>
    <link>https://w.atwiki.jp/air-lang/pages/41.html</link>
    <description>
      ** &#039;I&#039; = Integer Type (整数型)    </description>
    <dc:date>2009-01-30T14:49:38+09:00</dc:date>
    <utime>1233294578</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/40.html">
    <title>P</title>
    <link>https://w.atwiki.jp/air-lang/pages/40.html</link>
    <description>
      ** &#039;P&#039; = Pointer Type (ポインタ型)    </description>
    <dc:date>2009-01-30T14:49:56+09:00</dc:date>
    <utime>1233294596</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/39.html">
    <title>L</title>
    <link>https://w.atwiki.jp/air-lang/pages/39.html</link>
    <description>
      ** &#039;L&#039; = Logical Type (論理型)    </description>
    <dc:date>2009-01-30T14:49:27+09:00</dc:date>
    <utime>1233294567</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/air-lang/pages/38.html">
    <title>基本データと配列＆変数</title>
    <link>https://w.atwiki.jp/air-lang/pages/38.html</link>
    <description>
      &amp;br()

* 基本データの種類
- 論理値・文字列・整数値・実数値・ポインタの５種類があります。
- 全ての基本データは、&#039;&#039;値&#039;&#039;情報と&#039;&#039;型&#039;&#039;情報を同時に保有しています。

&amp;br()

** 論理値 ( Logical )
&gt; &#039;&#039;TRUE&#039;&#039; と &#039;&#039;FALSE&#039;&#039; があります。

  log1 = TRUE                              # 真です。
  log2 = FALSE                             # 偽です。
  
  log3 = (3&lt;M_PI &amp;&amp; M_PI&lt;4)                # 円周率 M_PI=3.14... ですので、log3 の値は TRUE となります。

** 文字列 ( String )
&gt; 文字列は本体部分を２重引用符 又は ２重大括弧で囲んで指定します。後者の場合は、複数行に渡る文字列を(各行行末をエスケープすることなく)そのまま記述できます。どちらの場合も、エスケープ文字はC言語のものと互換性があります。

  str1 = &quot;AIR-Lang\n&quot;
  str2 = [[
      AIR-Lang
  ]]
  
  re = &quot;/[ABC]+/&quot;                          # 正規表現は、&quot;/POSIX規格/&quot; で指定します。

** 整数値と実数値 ( Integer and Double )
&gt; 整数値の内部表現はC言語の int を利用しています。実数値の内部表現はC言語の double を利用しています。(必要な場合は、自動型変換が行われます。)

  a = +100 , b = -333 , c = INT_MAX        # 整数の指定例です。  
  i = 0b11 , j = 0o77 , k = 0xFF           # ２進数、８進数、１６進数の指定例です。
  c = &#039;\n&#039;                                 # C言語と同じエスケープ文字が使えます。
  
  x = -1.0E+99 , y = +1E-7 , z = 0.0       # 実数の指定例です。

    </description>
    <dc:date>2010-02-25T00:55:23+09:00</dc:date>
    <utime>1267026923</utime>
  </item>
  </rdf:RDF>
