■ このスレッドは過去ログ倉庫に格納されています
プログラミング講師「引数が偶数ならtrueを、奇数ならfalseを返す関数を作りなさい」
- 1 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:32:25.132 ID:Wxj0rnu+0.net
- 俺「こうですか?」
boolean func(int num) {
if (num % 2 == 0) {
return true;
} else {
return false;
}
}
講師「あーダメダメ。こういう風に書かなきゃ」
boolean func(int num) {
boolean result = true;
if (num % 2 != 0) {
result = false;
}
return result;
}
俺「はーそうなんですか」
なんで?
- 2 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:33:34.097 ID:1+rNXF760.net
- アヒルにでも聞いてろ
- 3 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:33:53.333 ID:KsgyqEQ4a.net
- 判定式をリターンしたら一行じゃん
- 4 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:34:05.521 ID:jmixpHCI0.net
- スタッフ、成田でオーストラリア人女性にインタビュー
↓
女性「風邪気味なんです、喉が痛い」と断るも、スタッフ無理やり引き留める
↓
女性インタビューに答える「日本のバンドの大ファンなんです」、とその場所を偶然ハワイ帰りのバナナマン設楽が通りかかる
↓
スタッフ、設楽にマイクを向けインタビュー。インタビュー中だった女性を完全放置
↓
女性、怒って立ち去る
失礼すぎだろこの番組…VIPQ2_EXTDAT: none:none:1000:512:----: EXT was configured
- 5 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:34:18.264 ID:vY23M4wd0.net
- return num % 2 == 0しろよ無能ども
- 6 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:34:43.056 ID:ymOvHi7T0.net
- returnは少ないほうがいいらしい
- 7 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:35:46.133 ID:DFUr8Spd0.net
- returnが一ヶ所に纏まってる
好みの問題
- 8 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:36:31.866 ID:ZaQ8P9r+0.net
- どっちでもいいと思う
- 9 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:36:48.760 ID:ar7Q5Mby0.net
- return arg%2==0 ? true : false;
- 10 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:36:55.810 ID:GNiEAfcp0.net
- >>1
裏切りのイベントを乗り越えてtrueエンド観たいもん
- 11 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:37:08.531 ID:Pr5qiNpH0.net
- 今回はその条件だけだけど
後からこの場合はこうしてって指示された時に講師の方が対応しやすいよな
- 12 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:37:15.196 ID:CVq8voa3d.net
- 化石みたいな考えの講師だな
- 13 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:37:31.538 ID:KsgyqEQ4a.net
- >>1
これマジ無能だな
ifの中でreturn falseしてればまだ分かるけど。
本線のプログラムに対して異常系を退避していく形を取ると
インデントが減らせるという考え方があるから。
- 14 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:38:17.362 ID:sitqtXxmd.net
- return x%2
- 15 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:38:44.013 ID:wZB98SOOa.net
- まあreturnが少ない方がいいのはわかるが例題が単純すぎてこのくらいならどっちでもいいわってなるわ。
- 16 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:39:27.010 ID:5fwTfFep0.net
- Cなら剰余を直接返り値にぶち込めば済むんじゃね
- 17 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:39:32.769 ID:XjT0U3Cyd.net
- >>14
これはダメって言われるパターン
- 18 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:39:42.087 ID:BOH050ls0.net
- >>1
これ言語によってはエラー出るだろ
リターンが両方if文の中にあるからコンパイラがリターンが無いと解釈する
- 19 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:41:51.998 ID:AXjdmuav0.net
- これ以外認めん
bool isEvenNumber(int value)
{
return value % 2 == 0;
}
- 20 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:42:50.734 ID:GNiEAfcp0.net
- >>13
変化に弱いポンコツはかた〜いコード好むからめんどくさいよね〜
- 21 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:44:40.532 ID:AXjdmuav0.net
- あぁ、講師が押し付けてきてるのは関数にreturnは一つだけとかいう古の風習か
- 22 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:45:43.311 ID:vY23M4wd0.net
- あー俺もこういう適当フカすプログラミング講師やりてえわ
- 23 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:45:50.560 ID:MGZUxgYQ0.net
- >>18
if-elseだからどっちか必ず通るだろ
- 24 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:46:00.495 ID:5fwTfFep0.net
- >>21
スパゲティの爪痕が生々しかった時代における過剰な反動ってやつかね
- 25 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:47:31.633 ID:BOH050ls0.net
- >>23
そう親切に解釈してくれるコンパイラと違うものがあるだろ
俺の経験ではまずエラーになる
- 26 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:48:16.223 ID:63K4jk/90.net
- >>23
必ず通ろうがif内にしか記述してない場合弾かれる
- 27 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:48:43.189 ID:KsgyqEQ4a.net
- >>25
流石にじじい
- 28 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:49:21.443 ID:BOH050ls0.net
- >>21
違う
上のはリターンが無いと解釈される
関数の定義ではブーリアンの返り値が定義してある
- 29 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:49:30.281 ID:MGZUxgYQ0.net
- >>25-26
今時そんなコンパイラあるんか
驚き
- 30 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:49:55.249 ID:NVAtTJqQ0.net
- じゃない時に処理するとかいう書き方してたら後々めんどそう
- 31 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:50:41.181 ID:Y+SH6YGpp.net
- >>29
ありふれてるぞ
化石使ってる企業なんて山ほどあるし
- 32 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:51:35.371 ID:ZaQ8P9r+0.net
- でもそんなコンパイラ使ってるところだったら逃げるわ
- 33 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:52:45.737 ID:KsgyqEQ4a.net
- 言語特性に合わせて最適な書き方すべきだろ
他の言語で通らないとか言う奴は思考停止のアホ
- 34 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:53:21.532 ID:GNiEAfcp0.net
- 化石コードとゆとりんコード紙一重なんだな目の毒( ;´Д`)
- 35 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:53:21.671 ID:BOH050ls0.net
- えー
プロの現場では上ので通る開発環境を使ってるの?
俺静的型付け言語ってみんなそういうものだと思ってたわ
- 36 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:56:06.899 ID:5fwTfFep0.net
- どの分岐を通っても返り値が明確に定義されてるのに
それをエラーにするようなコンパイラはクソ実装と言うほかない
自分でコンパイラを書き直すくらいの姿勢が必要だ
- 37 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:57:12.308 ID:AXjdmuav0.net
- >>35
そんなコンパイラ見たこと無い
あと、静的か動的かは関係無い部分だなそれ
- 38 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:58:13.630 ID:7lRLccXkp.net
- return打たないとエラー返すような言語やコンパイラ知らんわ
教えてエロいひと
- 39 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:58:45.341 ID:vY23M4wd0.net
- returnが分岐に書かれているとエラるコンパイラって闇ですか?
闇って言っていいですか?
- 40 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:58:59.268 ID:n3TPuk8B0.net
- でも>>1の環境ではif文内にしかreturnがないコードのコンパイルが通らないなら講師が全面的に正しいよね
- 41 :以下、\(^o^)/でVIPがお送りします:2017/04/21(金) 23:59:58.164 ID:MGZUxgYQ0.net
- if (num % 2 == 0) return true;
if (num % 2 != 0) return false;
↑だったらreturnされないパスあるぞボケって警告出す言語はあるがこれでもコンパイルエラーは見たことないわ
if-elseなら全く問題なく通るだろ
- 42 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:00:22.265 ID:ocrV4BXh0.net
- デバッガでトレースするなら後者の方が分かりやすいな
- 43 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:00:37.580 ID:oevB5GSkd.net
- どっちも通らなかった時に戻り値が不定になるから。
- 44 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:01:27.332 ID:jKoJKXR10.net
- >>41
gccはreturnが無いパスがあっても警告しか出さんけど
最近の言語なら普通はエラーになるぞ
- 45 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:01:42.470 ID:076gWwjJa.net
- >>40
一般的に幅広く使われてるCもjavaも通る
変な言語を教育の場に持ってくる方が悪い
- 46 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:01:52.376 ID:kxKhPcSr0.net
- >>37
静的型付け言語だと返り値にブーリアンの定義がしてあったら明確に
リターンをその型で返さないといけない
if文で包んでしまうとそこが曖昧とコンパイラに見なされる
と俺は考えてきた
プロは違うのか
そうか
- 47 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:02:41.576 ID:CpunHedZa.net
- コンパイルオプションしらんのか?
- 48 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:03:20.761 ID:CjJBPxaa0.net
- >>44
マジかよ
ちょっとwandboxで確かめてくるわ
- 49 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:03:48.799 ID:jKoJKXR10.net
- >>46
ifとelse ifしか無かったらダメだけど、>>1の講師のコードはifとelseだから大丈夫だぞ
これが通らないようなコンパイラはオモチャと言わざるを得ないな
- 50 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:03:53.415 ID:iIyYgqbjp.net
- >>46
これだわ
- 51 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:05:20.146 ID://0vEDmlD.net
- >>42
ポイントはそこだと思う。
あと、メンテナンス。
エレガントなコードこそ、拡張しにくいし、デバッグもやりにくい。
ベタベタに書いてるコードなら、拡張を新人にやらせても正解が出る。
- 52 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:06:41.979 ID:076gWwjJa.net
- >>51
保守性の高いコードを根本的に勘違いしてそう
- 53 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:07:22.112 ID:jKoJKXR10.net
- あぁ、すまん>>46の意図を微妙に履き違えていた
確かに動的言語だと戻り値の有無がシグネチャで明示されないな
その場合はreturn無いパスがあっても問題無いわ
- 54 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:07:57.259 ID:JRvONM2S0.net
- Ifの中だろうと用がなくなったらさっさとreturnしろってリーダブルコードで読んだ気がする
それよりretunに式書く書き方、デバッグ中のステップ実行で値確認しづらくて嫌いなんだけどそういう人他にいない?
- 55 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:08:46.224 ID:duzXs1U30.net
- >>51
くっさ
いや、テストクラスすら知らない香ばしいエレガントな臭いがしてくる
- 56 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:09:44.843 ID://0vEDmlD.net
- >>52
コーディングは机上でやるんじゃない。
キーボードから打ち込むんだ。
- 57 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:10:22.320 ID:jKoJKXR10.net
- >>51
そこを気にしたとしても
bool isEvenNumber(int value)
{
int remainder = value % 2;
bool result = remainder == 0;
return result;
}
なんだよなぁ
- 58 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:10:32.003 ID:duzXs1U30.net
- >>54
入門編としてまずはリーダブルコードでシコシコして欲しいよねえ
- 59 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:11:20.242 ID:KKV9QKPa0.net
- return !(num % 2);
- 60 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:11:29.681 ID:jKoJKXR10.net
- インデント消し飛んだ
bool isEvenNumber(int value)
{
int remainder = value % 2;
bool result = remainder == 0;
return result;
}
- 61 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:12:48.315 ID:duzXs1U30.net
- 出来るエンジニアはみんな読んでるぞ
リーダブルコードでググって買っちゃおう
ふつーにいい本だよん
- 62 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:13:51.379 ID:CZO9iff3d.net
- >>54
はい。
if((str=getenv(hoge)) !=NULL) {
とか、死ねと思う。
- 63 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:18:54.703 ID:CjJBPxaa0.net
- >>44
swiftとgoはコンパイルエラーなったわ
なるほどな
- 64 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:38:12.570 ID:duzXs1U30.net
- アフィカスは>>61のレスとAmazonへのリンクをちゃんとしとけよな
- 65 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:44:01.384 ID:K0c4WSGS0.net
- 余計な変数増やすなよハゲ!いらんだろハゲ!って思う
ifでfalseリターンしろやハゲ!出来ればブロック作んな!って思う
- 66 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:46:02.308 ID:vg5Zs9dL0.net
- if-returnするとエラーになるのコンパイラの都合なので
全域関数なら通ってほしいなとは
- 67 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:53:36.788 ID:cZtJB3fq0.net
- >>66
コンパイラの出来が悪いのはその言語自体が未成熟なのと同じなので
別の言語に乗り換える理由になるな
- 68 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 00:56:39.636 ID:plr8gV05H.net
- 美女がコロッと落ちる!?女性500人に聞いたアリな40男の特徴
http://teasd.tarama.jp/201713.html
- 69 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:13:00.483 ID:YH4cRhID0.net
- >>46
trueもfalseもbooleanだから、リターンをちゃんとその型で返してるぞ?
- 70 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:13:29.156 ID:KSXN0iI10.net
- 大体こういうスレは>>1を置き去りにした激しい議論が展開される
- 71 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:15:50.939 ID:kauLu2g60.net
- VIPにプログラミングの知識ある奴こんなにいるのかよ
すげぇ
- 72 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:16:54.289 ID:3NDI0nE20.net
- 凄いのかどうかすら分からない素人参上
- 73 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:18:30.245 ID:kxKhPcSr0.net
- 俺コンパイラっていうか主にunity使ってたんだけど
確かに前やった時は>>1の上のでエラーになってたと思うんだけど今試したら
何も問題無く通った
おかしいなぁ
前に駄目だったのがショックでずっとこうしないように作ってきたのだが
unityのコンパイラのバージョンが変わったのかなぁ
- 74 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:20:23.295 ID:qRgIXQE4d.net
- 綺麗なコード書くやつは一生コーダーやってろ
と思う。
- 75 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:21:25.895 ID:YH4cRhID0.net
- >>73
Unityみたいな最近のコンパイラがそんなアホな実装されてるわけがないから、
if( num % 2 == 0 ) {
return true;
}
if( num % 2 != 0 ) {
return false;
}
って書いてたんじゃね?
- 76 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:22:42.203 ID:l26s0yfF0.net
- なんでreturn2つあんの?
- 77 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:23:23.872 ID:kxKhPcSr0.net
- >>75
どう書いたか覚えてはいない
俺勘違いしてたんだな
- 78 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:24:27.062 ID:YUVPRN54d.net
- イルスにもリターンがあるのにエラー出すコンパイラは俺も遭遇したことがない
結局講師が正しいん?1が正しいん?
俺は1と同じ書き方してるわ
- 79 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:25:52.187 ID:l26s0yfF0.net
- やりたいことはわかるけどバカっぽいよね>>1のやり方は
- 80 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:26:59.233 ID:LSwnThVC0.net
- 変数使う方が嫌
コードが長くなるとどこでフラグをセットしたかわかりにくくなる
俺は処理の途中でretrunしちゃう方がわかりやすい
というか必要ない処理はやらないで抜けちゃいたい
- 81 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:29:23.575 ID:Ie12tLOed.net
- 俺ならこう
boolean func(int num) {
if (num % 2 != 0) {
return false;
}
return true;
}
- 82 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:31:21.605 ID:YUVPRN54d.net
- >>81
アホな質問だと思うが、どうして判断文はよく否定が使われるん?
イコールで書いたほうが読みやすくないかなあ
- 83 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:35:50.412 ID:Ie12tLOed.net
- >>82
講師のコピーしたからこうなってるだけ
どっちでもいいなら==の方が分かりやすいと思う
- 84 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:36:39.018 ID:YUVPRN54d.net
- しかし、実際のコードでも否定の方がよく使われていると思うんだ
何でか知らんから理由あんのかなと
- 85 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:38:35.932 ID:g7nVUNxoM.net
- trueが1ではなく正確には非0ってとこから来てる
falseは0だからそれ以外はtrue
- 86 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:39:49.716 ID:YUVPRN54d.net
- 意味考えろってことか
- 87 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:39:56.972 ID:Ie12tLOed.net
- 俺は最後のreturnはtrueにしたいから関数の途中で抜けるのは否定になるのかも
関数の役割と判定内容で変わってくるから何とも言えないけど
- 88 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:42:07.559 ID:cZtJB3fq0.net
- ○○である
○○ではない
一般的には後者の方が引っ掛けられる範囲は広くなるわな
エラー処理用途でも大体後者のが適してるし
- 89 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:42:50.334 ID:g2tOEa5p0.net
- 俺ならこう
boolean func(int num) {
for (i=0;i++;i<100000) {
if(num/i)return false;
}
return true;
}
- 90 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 01:59:58.062 ID:BmSzshwB0.net
- 闇落ちワイ「バグでなければ何でもいいよ」
- 91 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:36:59.130 ID:E3KIz1F9a.net
- num % 2 != 0じゃなくてnum & 1にしろよ気持ち悪い
- 92 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:40:57.695 ID:xYhwjw/l0.net
- 実戦で番兵使う人って今どれくらいいるんだろう
- 93 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:44:03.949 ID:CpunHedZa.net
- cpには確か番兵おったで
- 94 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:48:57.364 ID:SzdIqf4G0.net
- 番兵は時々使いたくなるな
端の処理だけ場合分けしなきゃいけない時は大抵使えるか考えてる
- 95 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:52:36.091 ID:YH4cRhID0.net
- >>84
!=を書こうとして=になる事はないが、
==を書こうとして=になる事はあるから、じゃないか?
- 96 :以下、\(^o^)/でVIPがお送りします:2017/04/22(土) 02:54:32.920 ID:K0c4WSGS0.net
- たまに番兵いない時あるから怖い
番兵使う時はいない時のフォローができるか考えてから使うようにしてる
ていうかそれが面倒だから使いたくない
総レス数 96
22 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★