<?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/yoshisu/">
    <title>Programming Wiki</title>
    <link>http://w.atwiki.jp/yoshisu/</link>
    <atom:link href="https://w.atwiki.jp/yoshisu/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Programming Wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2006-12-03T18:57:43+09:00</dc:date>
    <utime>1165139863</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/5.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/yoshisu/pages/3.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/6.html">
    <title>break文</title>
    <link>https://w.atwiki.jp/yoshisu/pages/6.html</link>
    <description>
      *break文
----
break文とは、プログラミング言語で、最も内側のループから抜け出せと云う命令である。for文、while文,switch文、do～while文内で用いられる。

**[[C&gt;C言語]]の利用例

 for(i = 0;i &lt; 50;i++){
     if(条件式)  break;
 }

此の樣に、ループ内で、或る条件が整った時点でループを中断する爲に使われるケースが多い。

 for(i = 0;i &lt; 50;i++){
     for(j = 0;j &lt; 50;j++){
         if(条件式)  goto label;
     }
 }
 label:

多重ループの場合は、[[goto文]]を用いた方がすっきり記述出來る。

 switch(ch){
     case 0: ...処理
          break;
     case 1: ...処理
          break;
     case 2: ...処理
          break;
     default: ...処理
         break;
 }

switchの場合は、case ...の処理が連續して行われない樣に、break文を用いて、制御から拔ける。

**[[Java]]の利用例

 while(true){
     if(条件式)  break;
 }

Javaには[[goto文]]がないので、多重ループから拔けるには、ラベル付きbreak文を使う。

 label:
 while(true){
     while(true){
         if(条件式)  break label;
     }
 }

ラベルは、外側のループの外に付ける。

**檢索
#search()    </description>
    <dc:date>2006-12-03T18:57:43+09:00</dc:date>
    <utime>1165139863</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/5.html">
    <title>goto文</title>
    <link>https://w.atwiki.jp/yoshisu/pages/5.html</link>
    <description>
      *goto文
----

goto文とは、プログラミング言語に於て、無條件に指定されたラベルにジャンプする指令の事。英語のgo toが由來であり、日本語に翻譯すると、「～へ行け」と云った意味になる。

[[C言語]]等の構造化プログラミング言語に於ては、goto文は使わないという暗默のルールが有る。
此れは、goto文の自由度が高過ぎて、多用すると、構造化を妨げ、デバッグ等の作業が行い難くなってしまうためである。此れによって、バグが発生したり、可読性を損なう事が有る。

しかし、多重ループ等から一気に拔け出したい場合等は、goto文を使った方が效率が良く、可読性も上昇する。例えば、以下の樣なケースである。

-[[break文]]を使う場合
 int i,j,k;
 int jfl = 0,kfl = 0;
 for(i = 0;i &lt; 50;i++){
     for(j = 0;j &lt; 50;j++){
         for(k = 0;k &lt; 50;k++){
             if(c[i][j][k] == 50){
                 kfl = 1;
                 break;
             }
         }
         if(kfl){
             jfl = 1;
             break;
         }
     }
     if(jfl)
         break;
 }

-goto文を使う場合
 int i,j,k
 for(i = 0;i &lt; 50;i++){
     for(j = 0;j &lt; 50;j++){
         for(k = 0;k &lt; 50;k++){
             if(c[i][j][k] == 50){
                 goto label;
             }
         }
     }
 }
 label:

但し、[[BASIC]]の樣な低レベルな言語では、goto文が必要不可欠である。goto文が無いと、ループや分岐が出來なくなってしまうのである。

goto文の多用に據って、プログラムの構造が複雜化し、著しい可読性の減少が有るプログラムを、「複雜に絡まっている」と云う意味で、[[スパゲッティプログラム]]と云う事が有る。

**檢索
#search()    </description>
    <dc:date>2006-12-03T18:34:44+09:00</dc:date>
    <utime>1165138484</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/4.html">
    <title>C言語</title>
    <link>https://w.atwiki.jp/yoshisu/pages/4.html</link>
    <description>
      *C言語(しーげんご)

----

プログラミング言語の一。本来の名称は、&quot;C&quot;と一文字であるが、紛らわしいので、「C言語」と呼ばれている。
初期[[UNIX]]の移植性を高める為に開発されたため、&quot;UNIXの副産物&quot;と云われる事も有る。

**特徴
C言語は開発に際し、自由度・実行速度・コンパイル速度を追求。その為、安全性を犧牲にした。故に、「諸刃の刃」等と例えられる事が有る。

-自由度
--改行やタブ、空白をトークンとして認識せず、行番号を用いない。その代わりに、;(セミコロン：semicolon)と云う独自の区切り記号を採用している。
--上の様な方式を&quot;フリーフォーマット&quot;と云う。
--プログラム実行の手順を、入れ子構造で記述が出来、見通しがよい。[[goto文]]による、無条件のジャンプをする必要が少なく、見通しが悪い、スパゲティプログラムになるのを防ぐ。
--プログラムを、関数に分離出来る。
--特定の範囲内でしか使えない、「使ったら棄てる」と云った形式の、ローカル変数、プログラム開始から終了迄生き続ける、グローバル変数が有り、それらの使える範囲をスコープと云う。
--高級言語ながら、低レベルな操作が可能。主な機能には、ビット演算(OR,AND,NOT,XOR)・シフト演算(&lt;&lt;,&gt;&gt;)・ポインタ演算が有る。

**Hello World
あらゆるプログラミング言語に於て、一番最初に作るプログラムで、画面に&quot;Hello World!&quot;と云う文字列を表示するだけのプログラム。
-C言語のHello World
 
 #include&lt;stdio.h&gt;
 
 int main(void){
     printf(&quot;Hello World!\n&quot;);
     return 0;
 }

先ほどにも示してある通り、C言語は自由度を求めた言語なので、Hello Worldにも、幾つかの種類が有る。
プログラムの起点、main関数の書き方も樣々である。

-あらゆるmain関数

 int main(void)

 int main() // voidは省略可

 main(void) // 戻り値の型は省略可

 void main() // 戻り値無しでもよい

 int main(int argc, char *argv) //引数を受け取る場合もある

-あらゆるHello World

 #include&lt;stdio.h&gt;
 
 int main(void){
     puts(&quot;Hello World!&quot;);
     return 0;
 }

表示にprintf関数でなく、puts関数を用いた物。printf関数が、文字列に続く仮引数を、変換書式どおりに変換・出力するのに対し、putsは、仮引数は一つ、charへのポインタ(文字列)のみである。また、最後に改行も付加する。

 #include&lt;stdio.h&gt;
 
 int main(void){
     char *str = &quot;Hello World!&quot;;
     puts(str);
     return 0;
 }

明示的にcharへのポインタを用いた物。難関であるポインタに早くから親しませる為に此れを用いる入門書もある。

 #include&lt;stdio.h&gt;
 
 int main(void){
     char str[] = &quot;Hello World!&quot;;
     puts(str);
     return 0;
 }

charへのポインタの代わりにchar型の配列を用いた物。

**誕生
B言語と云うプログラミング言語を改良して作られた。Bの次がCなのは、アルファベット順に名づけた物ではなく、B言語のもとになったBCPL言語と云うプログラミング言語の名前から来ている。BCPLのBの次がCと云う訳である。

したがって、C言語の後続を目指す&quot;D言語&quot;は、正しくはP言語になるべきだと言われている。

**檢索
#search()    </description>
    <dc:date>2006-12-03T14:33:52+09:00</dc:date>
    <utime>1165124032</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/yoshisu/pages/1.html</link>
    <description>
      *檢索する
-此のWiki内の項目を檢索出來ます。
#search()

**使ひ方
-基本的には、Programmingに關する事であれば、何でもOKです。言語は問いません。
-Programmingに限定せず、パソコンに關する事でも構いません。
-詳しい使ひ方が分からなくても、編集出來ます。

**最新記事

#recent(1)    </description>
    <dc:date>2006-12-03T14:32:20+09:00</dc:date>
    <utime>1165123940</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/yoshisu/pages/2.html</link>
    <description>
      メニュー
-[[トップページ&gt;http://www21.atwiki.jp/yoshisu/]]

----

-[[@ウィキ ガイド&gt;http://atwiki.jp/guide/]]
-[[@wiki 便利ツール &gt;http://atwiki.jp/tools/]]
-[[@wiki&gt;http://atwiki.jp]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります    </description>
    <dc:date>2006-12-02T14:46:18+09:00</dc:date>
    <utime>1165038378</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/yoshisu/pages/3.html">
    <title>メニュー2</title>
    <link>https://w.atwiki.jp/yoshisu/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)
    </description>
    <dc:date>2006-12-02T14:29:40+09:00</dc:date>
    <utime>1165037380</utime>
  </item>
  </rdf:RDF>
