2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

プログラミング講師「引数が偶数なら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 ★