アカウント名:
パスワード:
https://github.com/YukiLeafX/SMBC/blob/main/Veiw.java [github.com]行:1241
// list = new ArrayList();// list.add("SKE48");// list.add("AKB48");// list.add("HKT48");
int pattarn = Integer.valueOf(args[0]); switch(pattarn){ case 1: doMain01(); break; case 2: doMain02(); break;(中略) case 7: doMain07(); case 8: doMain08(); break; case 9: doMain09(); break;
(中略)
case 20: doMain020(); break;
default: doMain000(); break; }
色々ツッコミ
このレベルのコードを見せて、転職に有利になると考えたんだろうか?
これ、難読化済みのソースコードにちがいない。ないったらない。
FORTRANでしかプログラミングしたことが無い通行人だけど、breakしないとdoMain07の次にdoMain08が実行されてしまう、って理解でOK?RETURNすべき所でRETURN書き忘れると不要な処理が始まってしまう、みたいなものかなぁ?
その理解で合ってるが、ここだけみてもそれがバグであるか意図したものであるかはわからないね。フォールスルーの挙動を期待してこのようにしている可能性もあるので。まぁどっちにせよこんなバギーなコード書くやつは即退場願いますが
これが名前出て来る会社のシステムのコードのレベルでもある
そのとおりです。
間違いです。
> case8が評価されないんだなぁ
doMain07の次にdoMain08が実行されてしまうのではなくcase8が評価されるだと思っている私は間違いでしょうか?
間違いです。switch(n)の行でcaseが上から順に評価され、最初にmatchした行にgotoされると考えてください。caseはただのラベルなので、breakに付き当たるまでは延々と次行が実行されます。
20個もcase並べるとかド新人かよ。
仕様を自分で決める仕事と、詳細仕様まで決まっててその通り作る仕事があって、後者の場合、仕様を一番簡潔にコード化するのは、switchやらgotoやら使うのがいちばん合理的なことは多い
とくに金融系の仕事は、仕様レベルで大量の条件分岐があって、仕様の変更もあるので、仕様とコードの対比が簡単で、仕様変更があったらすぐコードにできるコードが重要
またGUIプログラミングの場合、switchつかわないみたいなことにこだわるのは無駄
細かい仕様知りたければコードを見ろ、みたいな世界と、詳細仕様までドキュメントで作ってある世界がある
>int pattarn = Integer.valueOf(args[0]);これ(valueOf())を見ると残念な気分になる。結構見るんだけど。
Java詳しくないんですけど、Integer.parseInt(String)を使うのが良いという話でしょうか。プリミティブ型の変数に格納するならプリミティブ型を返すメソッドを使うべきという観点なのか、それともどちらか片方のメソッドはlocaleの影響を受けて予期せぬ動きをするので避けるべきという観点なのでしょうか?
あ、ここでは単にparseInt()だろ、ということでした。どっちがどっちかちゃんと覚えてないということで。最終的にはオプティマイザがちゃんと直してくれちゃう気もしつつ。
結局プリミティブを残しちゃった言語的な問題、なのかな…。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
なんだアイドルオタなのか? (スコア:0)
https://github.com/YukiLeafX/SMBC/blob/main/Veiw.java [github.com]
行:1241
// list = new ArrayList();
// list.add("SKE48");
// list.add("AKB48");
// list.add("HKT48");
Re: (スコア:0)
Re: (スコア:0)
int pattarn = Integer.valueOf(args[0]);
switch(pattarn){
case 1:
doMain01();
break;
case 2:
doMain02();
break;
(中略)
case 7:
doMain07();
case 8:
doMain08();
break;
case 9:
doMain09();
break;
(中略)
case 20:
doMain020();
break;
default:
doMain000();
break;
}
色々ツッコミ
Re:なんだアイドルオタなのか? (スコア:1)
このレベルのコードを見せて、転職に有利になると考えたんだろうか?
Re: (スコア:0)
これ、難読化済みのソースコードにちがいない。ないったらない。
Re: (スコア:0)
FORTRANでしかプログラミングしたことが無い通行人だけど、breakしないとdoMain07の次にdoMain08が実行されてしまう、って理解でOK?
RETURNすべき所でRETURN書き忘れると不要な処理が始まってしまう、みたいなものかなぁ?
Re: (スコア:0)
その理解で合ってるが、ここだけみてもそれがバグであるか意図したものであるかはわからないね。
フォールスルーの挙動を期待してこのようにしている可能性もあるので。
まぁどっちにせよこんなバギーなコード書くやつは即退場願いますが
Re: (スコア:0)
これが名前出て来る会社のシステムのコードのレベルでもある
Re: (スコア:0)
そのとおりです。
Re: (スコア:0)
doMain07の次にdoMain08が実行されてしまう
のではなく
case8が評価される
だと思っている私は間違いでしょうか?
Re: (スコア:0)
間違いです。
Re: (スコア:0)
> case8が評価
されないんだなぁ
Re: (スコア:0)
doMain07の次にdoMain08が実行されてしまう
のではなく
case8が評価される
だと思っている私は間違いでしょうか?
間違いです。switch(n)の行でcaseが上から順に評価され、最初にmatchした行にgotoされると考えてください。
caseはただのラベルなので、breakに付き当たるまでは延々と次行が実行されます。
Re: (スコア:0)
条件分岐のための判断は上のほうで実施済みということなんですね。
Re: (スコア:0)
20個もcase並べるとかド新人かよ。
Re: (スコア:0)
仕様を自分で決める仕事と、詳細仕様まで決まっててその通り作る仕事があって、
後者の場合、仕様を一番簡潔にコード化するのは、switchやらgotoやら使うのがいちばん合理的なことは多い
とくに金融系の仕事は、仕様レベルで大量の条件分岐があって、仕様の変更もあるので、
仕様とコードの対比が簡単で、仕様変更があったらすぐコードにできるコードが重要
またGUIプログラミングの場合、switchつかわないみたいなことにこだわるのは無駄
細かい仕様知りたければコードを見ろ、みたいな世界と、詳細仕様までドキュメントで作ってある世界がある
Re: (スコア:0)
>int pattarn = Integer.valueOf(args[0]);
これ(valueOf())を見ると残念な気分になる。
結構見るんだけど。
Re: (スコア:0)
Java詳しくないんですけど、Integer.parseInt(String)を使うのが良いという話でしょうか。
プリミティブ型の変数に格納するならプリミティブ型を返すメソッドを使うべきという観点なのか、
それともどちらか片方のメソッドはlocaleの影響を受けて予期せぬ動きをするので避けるべきという観点なのでしょうか?
Re: (スコア:0)
あ、ここでは単にparseInt()だろ、ということでした。
どっちがどっちかちゃんと覚えてないということで。
最終的にはオプティマイザがちゃんと直してくれちゃう気もしつつ。
結局プリミティブを残しちゃった言語的な問題、なのかな…。