検索結果 12 件

by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタを理解する
返信数: 100
閲覧数: 40162

Re: ポインタを理解する

>3D_3Dさん なんだか回答の対応ばかりで受け身になってしまったような気がします。 なのでソフト屋さんも言いっているように方針を決めて状況を整理したほうがいいと思います。 今後どの勉強方法で行くのかは、3D_3Dさんに決めていただきたいと思います。 なので、とりあえず3D_3Dさんの意見を待ちたいです。 【補足】 私はCASL2アセンブラで根本から理解するという道も検討しておりました。 遠回りなんですけどね。 自分としては、もうすこし勉強して、どうしても理解できないようならばパターンで覚えようと考えております。 今はもう少しポインタを勉強したいと思います。 この返信だけでは不十分な感じもしま...
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: ポインタを理解する
返信数: 100
閲覧数: 40162

Re: ポインタを理解する

いろいろな方たちが説明してくれていますが それぞれに異なった方針を持っている人もいますので、ごちゃごちゃしてしまう場合は 違う方の説明を聞くときはほかの方の説明を半分ぐらい忘れた状態で聞くといいと思います。 (わからないことが残っても一旦理解したらそのあと質問すればいいので) 文法の面からひとこと言わせてもらいます。 「宣言の時」と「そうじゃない時」を分けて考えるとわかりやすいかもしれません //////////////////////////////// //宣言の時 int *p; //宣言の時は'*'を付ける //////////////////////////////// //そうじゃ...
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

すいません。編集しときました。
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

すいません。関数ポインタやクラスはまだ全然知らないのでぼくは何も言えません。

なのでこのへんでまとめにさせてもらいます。
*C言語で 無限ループ+switch を脱出する方法*
  1. フラグ
  2. goto文
  3. 関数化してreturn
  4. 処理テーブル方式
  5. 連続でif else
と教えて頂きました。
(僕の知識が足りない部分は不適切になると思い書きませんでした)

そもそも 無限ループ+switch文 というのがアレ とのご指摘も頂きました。

皆様、数多くの内容の濃い回答をありがとうございました。
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

なるほど、こういうことだったのですね。

状況によってだとは思いますがこの処理テーブル方式ではコードが大きくなってくると見難くなりますよね。(パターンの数とか)
そうなってくるとやはりコードを書く頻度というのは
return方式 >  処理テーブル方式
となるのでしょうか?

それともコードが醜くなるといったことはないのでしょうか?
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

softya(ソフト屋) さんが書きました:処理テーブル方式は、わざわざフラグを立てなくてもテーブル自体がフラグやら状態のような役目を持つのでループを抜けるという状態をテーブルが持っていれば良いという話です。
すみません。少し難しくてよくわからないです。
例えばコードでしたらどういった書き方が処理テーブル方式に当たるのでしょうか?
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

ただ、私なら大抵はreturnに成る組み方にするか、処理テーブル方式にしているみたいで、error処理goto以外は無意識には避けている様です。
あの、すいません。returnは分かるんですが処理テーブル方式ってどういうことでしょうか?
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

確かに裏ワザにこだわって可読性が低下したら本末転倒ですもんね。

今まではフラグしか使って来なかったのでreturnというのは新鮮でした。

しかしどうにもgotoはつかってはいけないというイメージが僕の中では強いんですが
みなさんはどういう状況に陥った時にgotoを使いますか?
それとも、意地でもgotoは使いませんか?
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

関数ですか、その発想はなかったです。

C言語にもさっきあげてくださったJAVAのような機能はないですよね・・・
と言うかそのJAVAもgotoと似たような機能ですが
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

やっぱりC言語ではフラグを使ったりgotoを使ったりするしかないのでしょうか

何か他に裏技的な何かみたいなものはないものでしょうか?
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

Re: switchでループを抜ける方法

すいません。C言語です。このサイトも一応「C言語なんでも質問掲示板」でしたので
言語指定がない場合はデフォルトでC言語みたいなものだと勝手に思いこんでいました。

ソースで書くとこんなイメージです。

コード:

while( 1 ){
	if( ... ){
		break;	//脱出できるよ(^O^)/
	}
}

コード:

while( 1 ){
	switch( ... ){
		case /*終了したい値*/:
			break;	//脱出できない(TдT)
	}
} 
by Lawliet
10年前
フォーラム: C言語何でも質問掲示板
トピック: switchでループを抜ける方法
返信数: 23
閲覧数: 25316

switchでループを抜ける方法

例えばwhile文で無限ループをしている時にif文でbreakすれば抜けられますが、
switch文をつかったときはbreakでも抜けられないですよね。

そんな時はフラグを使うなんていう手も思いつきますが
みなさんはこういう時には他にどういう手段を持って乗り越えていますか?

詳細検索ページへ移動する