概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C break文
2006年09月01日 (金) | 編集 |
switch case文の時に出てきたな。
ループから抜けるための制御だ。
switch case文の時にも出てきたが、breakはループから抜けるのに使われる。
ループから抜けるということで、switch case文だけでなく、forやwhile、do while文等でも使われたりする。らしい。
行き先を指定することなくループから抜ける事が出来るので便利だが、多重ループの場合には一気にループから抜けることは出来ず、内側のループから1つずつしか抜けることは出来ない。そうだ。

書式を見てみよう。


while(式){
 文1
 if(条件)
  break;
 文2
}


これでifが(条件)の時にwhile文のループから抜けるプログラムになる。
なので、

break_test.jpg
こんなのだと

break_test2.jpg
こうなる

a[j][k]が0ならそこでループから抜けてしまう為、その後に書いてあるprintf文が実行されず、つまりその行ではそれ以降の列は表示されないというわけだ。

更に特定の値を探して、その位置を表示するプログラムも組んでみる。
配列の宣言、初期化なんかは上のプログラムのままでいいとして、特定の値を格納する為の変数datを宣言し、datに任意の数値を入力する。

int j,k,dat;
printf("探したい値は何やねん? 0~4で指定な。\n");
scanf("%d",&dat);


後はループ部分を弄くってdatを発見したら位置を表示してループを抜けるように

for(j=0;j<4;j++){
 for(k=0;k<5;k++){
  printf("検索中…\n");
  if(a[j][k]==dat){
   printf("%d行%d列…該当\n",j+1,k+1);
   break;
  }
 printf("\n");
}


これだけ。
検索中のprintfは別にいらないんだが、寂しいのでつけてみた。

break_test3.jpgbreak_test4.jpg
こんな感じに

ひとつ内側のループから抜ける、ってのが微妙にややこしいが、それに気をつければまあ大丈夫かと。凡ミスの多い俺が言っても説得力無いが。

まとめよう

breakで1つ内側のループから抜ける事が出来る

以上。
シンプル極まりねー。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。