ページ 1 / 1
goto
Posted: 2012年9月13日(木) 09:48
by 世界
選択して分岐するプログラムを組んでいます。
goto分以外に指定したラベルに飛ばす方法ってあるんですか?
Re: goto
Posted: 2012年9月13日(木) 09:59
by beatle
switch はいかがでしょうか?変数に格納されている整数値に応じて分岐できます。
コード:
int x; // xには整数値を入れておく
switch (x)
{
case 0:
// x == 0 のときの処理
break;
case 10:
// x == 10 のときの処理
break;
default:
// それ以外のときの処理
break;
}
Re: goto
Posted: 2012年9月13日(木) 18:09
by オカピーα
トピックとは関係ないのですがよくある間違いです。
switch文のなかで変数を宣言してはいけません。
beatleさんが間違ってるわけではありませんよ?
僕はこのミスで散々苦しめられましたので
同じ思いをしている方が居たらと思って
ちょっと書いてみました。
Re: goto
Posted: 2012年9月13日(木) 20:30
by みけCAT
オカピーα さんが書きました:switch文のなかで変数を宣言してはいけません。
そんなことはない/言葉が足りないと思います。
コード:
#include <stdio.h>
int main(void) {
int a=0;
scanf("%d",&a);
switch(a) {
case 0:
{
int b;
b=1+2+3+4+5+6+7+8+9+10;
printf("%d\n",b);
}
break;
case 1:
{
int i,s=0;
for(i=0;i<=100;i++)s+=i;
printf("%d\n",s);
}
break;
}
return 0;
}
http://ideone.com/k8hCG
Re: goto
Posted: 2012年9月13日(木) 21:40
by たかぎ
みけCAT さんが書きました:オカピーα さんが書きました:switch文のなかで変数を宣言してはいけません。
そんなことはない/言葉が足りないと思います。
そうです。そんなことはありません。
コード:
switch (expression)
{
int variable;
case 0:
foo(&variable);
printf("%d\n", variable);
break;
case 1:
bar(&variable);
printf("%d\n", variable);
break;
default:
break;
}
Re: goto
Posted: 2012年9月13日(木) 23:24
by 世界
皆さん、詳しい解説ありがとうございました。