トップページ⇒tech
138コメント36KB

break文の是非について

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/06/22(月) 17:13:20
短期大学校にてプログラミングを学んでいるものです。
私の学校ではbreak文の使用が厳禁とされています(教師の個人的な規制だが)
また、メインループで0を返してループを抜け出すことも禁止されています(メインループの最後以外で)

このようにbreak文とは一般的には使用してはいけないもの、使用は控えるべきもの。と認識してもよろしいのでしょうか?
0002デフォルトの名無しさん2009/06/22(月) 17:19:23
一定レベル以上の人では、そういうのはすごい少数派。

あと、広がりのない話題でスレを立てるのはマナー違反な。
0003デフォルトの名無しさん2009/06/22(月) 17:26:29
>>2
スレ立てすいませんでした・・・
レスありがとうございます。
0004デフォルトの名無しさん2009/06/22(月) 17:26:29
>>1
世の中というのは不条理な物で、意味が無くても従わないといけない事もあるのです。

コーディング規約としては意味は無いけど、

・単位が欲しいなら従うしか無いでしょ
・給料が欲しいなら従うしか無いでしょ
・コミットして欲しいなら従うしか無いでしょ

みたいなね。

break がダメなら代わりに goto を書きまくったら良いんじゃね。
0005デフォルトの名無しさん2009/06/22(月) 17:29:33
>>1
あとで、ちゃんとした専門機関でもう一度勉強し直すことをお薦めします。
単位を取る以外のことは考えず、すべて受け流すように。
0006デフォルトの名無しさん2009/06/22(月) 17:29:34
>>4
単位のためには従うしかないないですね・・・
0007デフォルトの名無しさん2009/06/22(月) 17:34:10
>>5
今は単位を取ることだけに集中したいと思います。

>>6
ないない・・・
0008デフォルトの名無しさん2009/06/22(月) 17:41:42
>>1
それを提唱したのはダイクストラですが、そのことに関しては教えてもらいましたか?
まだであれば、ダイクストラと構造化プログラミングについてググってみましょう。

一般的には、breakも関数の途中抜けも多用され、そしてそれは悪いことではありませんが、
悪い用法・文脈で使われてしまうこともあります。
そのような癖を付けさせないために、学習期間中はダイクストラの教えを厳守させるのも
一つの方法です。

breakを使いたくなったり、関数を途中抜けしたくなったり、インデントが深くなったりしたときは、
まず関数全体の構造をよりよくできないか考えましょう。
あるいは、大きな関数やインデントが深い関数は、関数分割やリファクタリングを考えましょう。
そのようなことを考えさせるために、ダイクストラの教えを強要するのではないかと思います。
0009デフォルトの名無しさん2009/06/22(月) 17:52:58
ダイクストラが言っていたのは break ではなくて goto じゃないかな。
switch の中で break を使えない状況なんて、ちょっと理解出来ませんよね。

わざわざ無意味で不必要な制限を加えて、おかしな癖が付いたら逆効果です。
0010デフォルトの名無しさん2009/06/22(月) 17:57:35
switchなんていらないだろif elseifで十分
0011デフォルトの名無しさん2009/06/22(月) 18:07:44
構造化スキーで途中return禁止ってのはたまに出会うけど、break禁止ってのは珍しいな。
goto使いたくないっていうことで
do{...}while(0);
をbreakで抜ける技とか使うくらいなのに。
0012デフォルトの名無しさん2009/06/22(月) 18:18:26
breakもgotoと同じだろ
0013デフォルトの名無しさん2009/06/22(月) 18:20:03
continueも禁止ですな。
gotoと同じだし。
0014デフォルトの名無しさん2009/06/22(月) 18:20:58
>>9
switchの中のbreakじゃなくて、ループ脱出のためのbreakの話でしょ。
0015デフォルトの名無しさん2009/06/22(月) 18:26:45
マゾプログラミング講座では、現在 break, continue, goto, return が禁止されています。
switch の使用も意味をなさないので推奨されません。制限はこれからも増える予定です。
0016デフォルトの名無しさん2009/06/22(月) 18:30:06
スマソ。規約は正確に書かないとな。

× return が禁止
○ 複数 return が禁止
0017デフォルトの名無しさん2009/06/22(月) 19:43:17
スレ立てるまでもない質問はここで 97刷
http://pc12.2ch.net/test/read.cgi/tech/1240877154/
0018デフォルトの名無しさん2009/06/23(火) 10:37:12
初心者には禁止するくらいでいい
0019デフォルトの名無しさん2009/06/23(火) 10:51:07
初心者上級者関係ないです。
0020デフォルトの名無しさん2009/06/23(火) 10:58:33
break禁止は大きな過ち
むしろwhileとbreak以外の全ての制御構文を禁止するべき
ifとかelseとかforとか存在自体が無駄
0021デフォルトの名無しさん2009/06/23(火) 11:03:20
こんな30年前に終わった話題をいまさら蒸し返さなくてもいいよ
0022デフォルトの名無しさん2009/06/23(火) 14:16:40
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0023デフォルトの名無しさん2009/06/23(火) 14:48:59
call/cc 使おうぜ!
0024デフォルトの名無しさん2009/06/23(火) 23:25:52
>>1
ところでプログラミング言語は何?
0025デフォルトの名無しさん2009/06/24(水) 08:22:01
学校の先生が禁止するのは、
必要もないところでむやみに使うやつがいるからだろう。
生半可な知識だと、とにかく動けばいいやってんで、
めちゃめちゃな使い方するやつがいるからね。

現実には、適切なところで、適切に使えばいいんだよ。
他人がそのプログラムを見たときに、
そのほうが分かりやすいかどうかが目安だ。
0026デフォルトの名無しさん2009/06/24(水) 08:45:53
禁止すれば何かが解決すると思うのもなんだかなあ…
0027デフォルトの名無しさん2009/06/24(水) 09:13:18
コーディングスタイルの話題で、そんな書き方ないだろうって言われると、
「いや、これは初心者(ヘタクソ)に有効な書き方なんだ」っていいわけ
するやつがいるけど、コーディングスタイルに上級者むけとかヘタクソむけ
とかないから。
0028デフォルトの名無しさん2009/06/24(水) 10:14:05
この場合は、へたくそに「有効」なんじゃなくて、
へたくそには「使わせない」ってことだから、ちょっと違う。

学校の先生は、数十人以上を同時に相手にしていて、
短大なら来プログラミングをする職業に就く人も少なそう。
いちいちきめ細かな指導をしていられる状況じゃない。
単に、一般教養の一種としてプログラミングの入門を
教えているなら、使わせないという発想もありだと思う。
0029デフォルトの名無しさん2009/06/24(水) 10:14:51
いくらなんでも無内容すぎる
0030デフォルトの名無しさん2009/06/24(水) 10:16:06
breakの代わりに、goto文を多用すればいいだけwwwwww
0031デフォルトの名無しさん2009/06/24(水) 10:44:00
正直言って、将来プログラマにならない
文系素人にコンピュータの仕組みを教えるなら、
BASICでいいと思うよ。もちろん、GOTO使いまくりで。
関数とかサブルーチンとか教えても無理だから。
0032デフォルトの名無しさん2009/06/24(水) 10:58:06
goto文が悪いわけじゃない。

プログラムのコーディングができても設計ができない奴に問題がある。
0033デフォルトの名無しさん2009/06/24(水) 11:50:46
C#のルールブックって本は break禁止だったな。
理由は分かりにくいってコトだったが、 サンプルどうみても
breakを使わないでかいたリストの方が分かりにくかったが。
0034デフォルトの名無しさん2009/06/24(水) 11:55:48
>>26
いや、解決するでしょ
0035デフォルトの名無しさん2009/06/24(水) 12:03:28
>>28
そういう理由なら、教えないってだけで、使うのは禁止しなくてもいい。
むしろ教えていない部分でも、自分で勉強して使う生徒は評価するくらいでなくては。
0036デフォルトの名無しさん2009/06/24(水) 13:10:20
所詮、体育会系単細胞教師ってことだw
0037デフォルトの名無しさん2009/06/24(水) 14:40:44
>>34
それは解決してる気になってるだけだよ。
0038デフォルトの名無しさん2009/06/24(水) 15:00:39
>>37
安易にbreak, continue, returnする癖が付く問題は回避できるでしょ
0039デフォルトの名無しさん2009/06/24(水) 15:27:25
break,continueを絶対使わない、returnは関数の最後に一個だけって
癖がつくのとどっちが有害だろうか。
0040デフォルトの名無しさん2009/06/24(水) 15:27:50
>>38
安易に禁止する事で、breakの使い方を知らない子供たちを量産するんですね
0041デフォルトの名無しさん2009/06/24(水) 15:45:33
>>39
使い所を知ってるからそういいたいんだろうけど、相手は初心者だよ?
0042デフォルトの名無しさん2009/06/24(水) 15:50:20
>>39
適切なbreak, continue, returnの使用は、そのうち学習すればいい。
適切じゃない使い方をさせないための制限でしょ。
break, continue, return, gotoを最初から無制限に使いまくれとでも言いたいの?
0043デフォルトの名無しさん2009/06/24(水) 15:53:02
古き良きPascalやLispを使わせれば問題ないんだよ。
0044デフォルトの名無しさん2009/06/24(水) 15:54:04
よくある、配列の要素をfor文で巡回する様な処理の場合も、
必要な値が見つかってもbreakしないで最後の要素まで
延々と検査するんだろうな。

それは悪い癖じゃないのかな?
0045デフォルトの名無しさん2009/06/24(水) 15:56:23
使いながらおぼえればいいだろ。
breakとかcontinueって、そんなに危険物なのか。
たいがいに入門書にはbreakやら、省略せずに教えてるけど、
そういう教科書で勉強した初心者は、すごいことになりそうだな。
0046デフォルトの名無しさん2009/06/24(水) 15:57:46
breakが無い言語ではプログラミング出来ないんだろうなぁ
0047デフォルトの名無しさん2009/06/24(水) 15:58:46
>>39
一年間の講義を終えた後でbreakの存在を知った生徒はどう思うんだろうね。
独自にbreakの使い方を勉強して、結局は悪い癖を身に付けちゃう子も居るだろうね。
授業で教えてくれなかったし…
0048デフォルトの名無しさん2009/06/24(水) 16:01:01
>>47
break禁止って言われるわけだから、一年後に存在に気づくなんてあり得ないだろ馬鹿
0049デフォルトの名無しさん2009/06/24(水) 16:02:25
>>48
名前を知ってるのと、適切な使い方を知ってるのは雲泥の差だろ…
0050デフォルトの名無しさん2009/06/24(水) 16:04:22
break禁止令を不自然だと思わない人間がム板にいる事が驚きだわあ
0051デフォルトの名無しさん2009/06/24(水) 16:09:36
スポーツとかと違って、プログラミングの癖なんていくらでも修正きくんで、
どうでもいいっていえばどうでもいいけどな。
初心者のころにbreakは一般的でないって教えられて、以後、それを信じ込んで
考えを変えられないとかってのは、癖どうこう以前にダメだしな。
(じっさいそういうヤツ一杯いるけど)

こういう、怪しいスタイルを教えるやつって一杯いるんで、自分で自衛するか
ない。
0052デフォルトの名無しさん2009/06/24(水) 16:14:52
出来る事ならば、学校の先生はそういう怪しいスタイルから
生徒を守る側に立って欲しいよな
0053デフォルトの名無しさん2009/06/24(水) 18:33:26
こういうのは、教科書の問題も大きい。
世の中の本の中には、とりあえず、breakやgotoの文法だけ
教えればいいだろうってんで、非現実的なサンプルプログラムを
載せているものがある。極端な例だと、

for (i = 0; i < 10; i++) {
...
if (i == 7) goto label;
...
}
label:

なんてのを見たことがある。
こいうのは、break, continue, gotoだけじゃなくて、
switch, do-while もそうなんだけど、短くてしかもちゃんと
必然性のあるサンプルプログラムって作るのって、結構難しいんだよね。
0054デフォルトの名無しさん2009/06/24(水) 18:44:43
例文はこういうので良いんじゃないの。

http://okuyama.mt.tama.hosei.ac.jp/unix/C/slide77.html

ちょっとググってみたけど、確かにあまり意味無いなあと思う例文も多いですね。
0055デフォルトの名無しさん2009/06/24(水) 18:54:39
>>54
普通は、配列を習うのは制御構造の後。
0056デフォルトの名無しさん2009/06/24(水) 20:18:26
>>18-
>>17 が見えないか?
見えてるけど、語りたいのか?莫迦のくせに。
0057デフォルトの名無しさん2009/06/24(水) 20:40:04
>>55
講師が↓このどちらかを言えば問題無いでしょ。

『breakについては配列を勉強してから再度詳しく取り上げます』
『配列については後で詳しく説明します』
0058デフォルトの名無しさん2009/06/24(水) 22:06:33
breakとかcontinueとか、時間がないから省略するってのは、まだしも
難しいとかクセがつくから教えないってのはありえない。
0059デフォルトの名無しさん2009/06/24(水) 22:53:21
この教師、フラグをガンガン使いまくってでも1個のbreakを避けることの方が重要なんだろうな。
まあ実社会でそういう害毒を撒き散らさないんなら、好きにやってていいよw
0060デフォルトの名無しさん2009/06/24(水) 23:27:42
breakって、関数型言語でループ(もどき)を回した時の
ガードに相当するんじゃないの?
0061デフォルトの名無しさん2009/06/25(木) 11:15:06
>>44
先生!break使わずに早や抜け出来ました!

int i, targetIndex = INT_MAX;
int count = countOfArray(array);
for(i = 0; i < count; i++) {
if(a[i] == target && targetIndex != INT_MAX) {
targetIndex = i;
count = i;
}
}
0062デフォルトの名無しさん2009/06/25(木) 15:07:43
>>61 break 使わないと 可読性がますます下がるな...
↓も break 使ってないがマダマシ?

int searchTargetIndex(int* array, int target)
{
 int i;
 int count = countOfArray(array);
 for (i = 0; i < count; i++) {
  if (array[i] == target) {
   return i;
  }
 }
 return INT_MAX;
}

targetIndex = searchTargetIndex();

0063622009/06/25(木) 15:09:08
すまん.
途中 return も禁止だったね.
0064622009/06/25(木) 15:10:13
しかも, 呼び出し
targetIndex= searchTargetIndex(array, target);
だ.
0065デフォルトの名無しさん2009/06/25(木) 21:04:33
なんで for? while 使えばいいじゃん
0066デフォルトの名無しさん2009/06/25(木) 21:09:29
done = 0;
while (!done) {

}
0067デフォルトの名無しさん2009/06/25(木) 21:13:40
そして余計なフラグが一個増えた
0068デフォルトの名無しさん2009/06/25(木) 23:17:41
break禁止よりwhileの使い方をちゃんと教えた方が有益だな、と思いました
0069デフォルトの名無しさん2009/06/26(金) 03:18:36
break禁止ってパフォーマンスに関わってくる気がする
0070デフォルトの名無しさん2009/06/26(金) 09:36:41
課題の評価方法として、例えばbreakは減点1、gotoは減点50、
フラグ目的の変数は減点2、などとして評価するのはどうだろう。
0071デフォルトの名無しさん2009/06/26(金) 10:10:37
使わなかったら点数が倍とか
0072デフォルトの名無しさん2009/06/26(金) 10:28:58
なんでbreakやフラグで減点なんだ。
0073デフォルトの名無しさん2009/06/26(金) 10:51:47
減点最小に最適化しろってことだろ。
0074デフォルトの名無しさん2009/06/26(金) 10:54:20
goto/break憎しでそれを避けるコードやそういうコードを書く奴って糞ばっかりなんだけど。
経験的に言って。
0075デフォルトの名無しさん2009/06/26(金) 11:01:28
>>74
そういうコードは大きく減点するようにすればいい。
0076デフォルトの名無しさん2009/06/26(金) 12:46:38
>>65
for-breakを使うことを知って、それで思考停止する馬鹿が多いから、break禁止にも一理あると言うことですな。
0077デフォルトの名無しさん2009/06/26(金) 12:56:15
一理もないような気がする。
0078デフォルトの名無しさん2009/06/26(金) 14:46:39
無駄な思考は要らんだろ
他に頭回せよ馬鹿
0079デフォルトの名無しさん2009/06/26(金) 14:46:42
気のせい
0080デフォルトの名無しさん2009/06/26(金) 14:47:35
>>78
君プログラマに向いてないよ
0081デフォルトの名無しさん2009/06/26(金) 15:02:44
>>80
お前が向いてない
金にならない
0082デフォルトの名無しさん2009/06/26(金) 15:51:59
>>80
悔しいね〜
0083デフォルトの名無しさん2009/06/26(金) 15:52:54
whileやdoを使うことを一ミリも考慮しない馬鹿
0084デフォルトの名無しさん2009/06/26(金) 16:39:04
まだ頑張ってるのかw
break禁止が非難されると困るのはどんな人なんだろうね。
0085デフォルトの名無しさん2009/06/26(金) 16:47:59
ifとgotoさえあれば他は要らない
0086デフォルトの名無しさん2009/06/26(金) 16:51:33
>>85
それで各行に番号みたいのがついてれば、ラベル名考える手間がなくて便利じゃね
0087デフォルトの名無しさん2009/06/26(金) 17:36:05
>>84
いやいや、誰かがbreakを禁止すると困る人が多いようだよ
0088デフォルトの名無しさん2009/06/26(金) 17:41:14
>>84
別に困らないけど、breakを禁止にすることによって得られるメリットがあることを納得しない
人がさんざん反論するから相手してるだけ。
0089デフォルトの名無しさん2009/06/26(金) 17:44:45
もうちょっとましな暇つぶししようぜ。
いくら時間をつぎ込んでも2chはお前を救ってはくれないぞ。
0090デフォルトの名無しさん2009/06/26(金) 17:50:23
生産性の無いことするの好きなんだね
0091デフォルトの名無しさん2009/06/26(金) 18:41:26
>>87
そりゃ困るだろ。
breakの使い方も知らない人間とコーディングするのは誰だって嫌だぜ。
歪んだ知識を持った奴がおかしな理屈を振りかざすのも面倒だし。
0092デフォルトの名無しさん2009/06/26(金) 19:02:35
あり得ない話だが、仮にbreak禁止論が一般に広まったとしたら、
一番困るのは、>>1が行ってる短大の講師だろう。
0093デフォルトの名無しさん2009/06/26(金) 19:20:15
break禁止論が一般に広まったとしたら、gotoで書くだけのような気がする。
goto駄目なら、例外とか、関数リターンとか、フラグ…
はっきりいって余計に悪い!
0094デフォルトの名無しさん2009/06/26(金) 20:02:36
breakみたいなよく使われる機能は授業の中できちんと教えるべきですよね。
もしbreakの使い方で問題が起こるなら(勿論そんな事は稀ですが)、講義の中で
フォローしてあげるのが先生の仕事ではないでしょうか。

それがそんなに難しい話だとは思えません。
0095デフォルトの名無しさん2009/06/26(金) 20:04:38
>>88
break を教えて貰えない事による、生徒の側のメリットって何よ?
0096デフォルトの名無しさん2009/06/26(金) 20:48:26
文系短大のプログラミング入門の授業だったら、
break なんてちゃんと教えてる時間はなさそう。
禁止する理由にはならないけど。
というか、Cなんて教えるな、という話になる。
0097デフォルトの名無しさん2009/07/01(水) 08:57:06
毎回規約が変わるのなら勉強としては良いかも知れない
今回はbreakやcontinueや途中return禁止、次回はelse禁止とか
0098デフォルトの名無しさん2009/07/01(水) 13:19:03
勉強にはなるかも知れんが
仕事にならんなw
0099デフォルトの名無しさん2009/07/01(水) 20:13:27
Java みたいに goto 禁止とか、
関数型言語みたいに破壊的代入禁止とか、
JavaScript みたいに sleep 禁止とか、

>>1 の話は全然レベルが違うか…
0100デフォルトの名無しさん2009/07/02(木) 15:21:14
goto のかわりに例外投げれば良いじゃない。
break のかわりに例外投げれば良いじゃない。 throw ELoopBroken みたいな。
途中 return のかわりに例外投げて関数の最後で補足すれば良いじゃない。throw EReturn(戻り値) みたいな。
0101デフォルトの名無しさん2009/07/02(木) 17:42:23
それ C じゃ通用しないお
0102デフォルトの名無しさん2009/07/02(木) 17:49:03
phpだと break 2 とか break 3 って、複数ループジャンプできなかったっけ
0103デフォルトの名無しさん2009/07/02(木) 18:47:30
もうsetjump(3)とlongjmp(3)でいいじゃない
0104デフォルトの名無しさん2009/07/02(木) 19:47:28
Java は break や continue にラベルを指定できる
0105デフォルトの名無しさん2009/07/02(木) 20:32:50
out:
while(1){
0106デフォルトの名無しさん2009/07/02(木) 20:34:11
    break out;
}

ミスった
0107デフォルトの名無しさん2009/08/05(水) 19:20:01
\\
0108デフォルトの名無しさん2009/08/05(水) 21:13:18
>>105-106
それってどんな goto
0109デフォルトの名無しさん2009/08/06(木) 00:24:06
しかし、大学校なんて防衛大ぐらいだと思ってたけど他にもあるのか。
0110デフォルトの名無しさん2009/08/07(金) 14:34:25
でーこーぼーこ大学校ー
はーじーまーるよー
0111デフォルトの名無しさん2009/08/08(土) 01:43:20
>>110
NTT西日本は大学校持ってないよ。
0112デフォルトの名無しさん2009/10/08(木) 04:58:45
つーか、学校でプログラミング教えているようなやつなんか終わってるんだよ。
優秀な人間ならどう考えたって教員なんかよりソフトウェアエンジニアリングの方が儲かるもん。
break禁止とか現場的枝葉に拘るところからして、コンピュータサイエンスとかのアカデミズムとも無縁だろう。
プログラミング教えるってそれ自体そもそも学問じゃないので大学職員としても底辺だし。
そんなダメなやつが break禁止って生意気だろ?
おまえは、Scott Mayerより偉いのか? K&Rより偉いのか?
『何様ですか?』と2chで人格攻撃されてましたと、どうかお伝えください。

0113デフォルトの名無しさん2009/10/08(木) 10:56:45
保守すんな阿呆
0114デフォルトの名無しさん2009/10/30(金) 16:40:45
プログラムは単なる手段です。
0115デフォルトの名無しさん2010/07/29(木) 16:31:07

0116デフォルトの名無しさん2011/05/05(木) 11:08:52.08
0117デフォルトの名無しさん2011/05/10(火) 07:17:14.97
ヽ(`Д´)ノボッキアゲ!!
0118uy2011/05/15(日) 01:23:01.67
breakは、アレだろ
こういう使い方はヤバイ
begin
print "test"
print "test"
print "test"
print "test"
print "test"
break if flag
print "aaaa"
print "aaaa"
print "aaaa"
print "aaaa"
print "aaaa"
print "aaaa"

end until false


こうやってbreakの後ろにもソースコードがある場合、
これは本来、ソースが冗長しようとbreakの前にある処理と、 breakの後ろにある処理を
別関数に分けるべき、
0119uy2011/05/15(日) 01:27:49.18
あとは何かイテレータで廻してるときとか、
each.do |n|
 break if test
 処理
end
こうかくのは全然あり
これをしないと
each.do |n|
 unless test
  処理
 end
end
こうかね。
しかも無駄なループが発生する
0120デフォルトの名無しさん2011/05/15(日) 08:18:33.30
>>119はともかく、>>118は駄目な発想だな。
関数は意味のあるまとまりができたときに、その処理に名前をつけるために作るもの。

文法的にこういう記述ができたから関数にしよう
……なんて発想で関数を作ると思いっきり読みにくくなる。
冗長とか言う問題じゃなくて、関数の間の結合度が上がる。
0121uy2011/05/17(火) 15:23:59.69
>>120
このヤバさがわからないとは、このケースの問題に当たった事がないだろ
俺が今まで読んだどこかの本にも書かれていた内容だと思ったけどな

returnや、breakは、その処理ブロックの最初か最後に書くべきであって、
中盤にやたらかいてはいけない
print "aaaa"    ←例えばこれが、百行くらいだったりした場合の可読性の低下は、やばい
そしてこのかき方をゆるすと、その百行の中にもさらに複数のbreakの発生を許す事にもなるよね

俺がつい最近>>118みたいなコードを「仕方なく」書いたから、例として出したんだけど後で書き直すつもりだよ
そのせいで関数の数が二つ増える事になるけど、そうする予定


んで、関数の名前についてだけど
別に関数を2個に分裂させるわけじゃなく、
共通処理を抜き出してSub関数を作るんだよ、この部分の関数分けは表には現われない
もしかしたらyieldが無いと出来ないタイプの芸当な感じがするけどな
0122uy2011/05/17(火) 15:47:14.41
なんか概念を色々しらなそうだから付け足しておいてる
lambda、クロージャでググレカス

オブジェクト指向ではなく、関数型プログラミングのほうで関数というものは
とにかく細かい単位にまで処理を分けるもの、OOではクラスでやってる役割も関数型ではlambdaで受け持つ事がある
OOでも118はダメだと思う
118が許されるのはC言語による手続き型のプログラミングまでです
0123デフォルトの名無しさん2011/05/22(日) 14:52:19.38
>>121
> print "aaaa"    ←例えばこれが、百行くらいだったりした場合の可読性の低下は、やばい
> そしてこのかき方をゆるすと、その百行の中にもさらに複数のbreakの発生を許す事にもなるよね

同じような記述が100行もある時点でおかしい。breakがどうこう言う以前の問題だよ。
お前は関数型言語だとかラムダだとかを知る前に、サブルーチンの作り方とかループを知れ。
0124デフォルトの名無しさん2011/05/23(月) 11:35:40.61
頭でっかちで実装技術が伴っていない悪寒。
0125uy2011/05/24(火) 22:35:01.12
>>123
知的障害者の方ですか?
ボケで言ってるんじゃなければ、病院いけ  それか休め


煽りじゃなく、  たぶん、お前以外の奴は全員理解してる
> print "aaaa"
> print "aaaa"
> print "aaaa"   これ 同じ記述が続くって意味じゃないことを
0126uy2011/05/24(火) 22:45:15.49

知的障害者は言い過ぎたか、素の初心者か君。


流石に、俺はあちこちで痛いこと書き込んでるけど そこまでではない
とりあえず、学生の君にも分かりやすくいうと、学生時代にC/C++で数万行のソースかいてたレベル
当然学内では1位だったよ
井の中の蛙とかおやまのたいしょうとか、思うならそれでもいいけれど

流石に君のような頭の悪そうな学生以下ではないので
0127デフォルトの名無しさん2011/05/25(水) 02:47:03.19
>>123の是非はともかく、少なくとも匿名掲示板で延々とコテ付けてる人が頭が良いとは言えないぞ
0128デフォルトの名無しさん2011/05/25(水) 07:30:09.64
>>127
マ板の例外スレ見てみ。
こいつキ○ガイだから。
0129デフォルトの名無しさん2011/05/25(水) 07:47:09.88
gotoと例外の区別もつかないのか。だから、breakとgotoの区別もついてないんだな。
0130uy2011/05/27(金) 21:29:42.92
知的障害は知的障害を呼ぶ

このスレこわ
大学1年生がみても、程度が低いと分かるレベル

笑っていいよ、 >>ここみてる大学生      これが日本のレベルです。。。。
0131デフォルトの名無しさん2011/05/30(月) 08:49:10.68
自分で言っちゃったね。
0132uy ◆yyC0rYWEq2 2011/05/30(月) 17:18:20.79

どうせ35でプログラマ続けるのが限界になって

ひっそりと自殺するゴミに何を言っても無駄か・・・
0133デフォルトの名無しさん2011/05/30(月) 19:53:46.31
うんこにラベルつけてもうんこはうんこですよ
0134デフォルトの名無しさん2011/06/04(土) 17:13:39.91
ruby厨っておもしれーな
0135デフォルトの名無しさん2011/06/04(土) 22:24:38.60
Perlにも変なのがいたぞ。PHPが嫌いらしい。
0136デフォルトの名無しさん2011/06/05(日) 02:37:05.33
本読みかじった知識だけ振り回して細かく分けすぎて破綻するパターンとか
クロージャ使いまくって不具合を追えなくなるパターンを経験してないんだな
0137デフォルトの名無しさん2011/06/06(月) 22:00:09.78
この子なのね
http://logsoku.com/thread/pc11.2ch.net/prog/1261972475/
0138デフォルトの名無しさん2011/11/20(日) 11:31:56.45
へえ
■ このスレッドは過去ログ倉庫に格納されています