そりゃ出来るに決まってるだろ・・・
switch文欲しいっていう奴は当然それを知った上で「欲しい」と言ってるわけよ
何でこんなにレベル低くなったんだ?
switchで「簡単に」出来る事をif〜elseで「複雑に」なってもいいのなら
そりゃ出来るに決まってるだろ・・・
switch文欲しいっていう奴は当然それを知った上で「欲しい」と言ってるわけよ
処理を簡潔に記述できたほうが生産性が高まるからね
if 〜 elseではswitchのように処理を簡潔に記述する事は実現できないというのに
こういう馬鹿は何を考えて
>>947のようなレスをするのだろうか。
ここまで噛み砕いて書いてあげても理解できないのかな?
そんな熱くなるなよ
出来ないと言っちゃったからって
>>954 >if 〜 elseではswitchのように処理を簡潔に記述する事は実現できないというのに
>>947 >多少は楽になるんじぇね?
Pythonのように、比較的メジャーな言語でもswitch構文を採用していないものもある。
まあPythonはswitch-caseを採用したところでタイプ量も見た目もelifとほとんど同じになってしまうから需要がないんだが。
生産性を気にするならスコープの概念がほぼないとか、execmacroの貧弱さとか
もっと重要な問題はたくさんあるのにswitchごときで何を大げさな、と俺は思う。
正直なくてもかまわん。
ID:1Cnf+ioNPの後出し言い訳わろたw
最初に大きく出ちゃって引くに引けなくなった奴の末路だな
>>956が正解
論点が違ってるだけじゃん
switch (条件) {
case 条件a: // 1
case 条件b: // 1
case 条件c: // 1
処理1;
break;
case 条件d: // 2,3,4
処理2;
case 条件e: // 3,4
処理3;
case 条件f: // 4
処理4;
break;
default: // 5
処理5;
}
switchが欲しいって事は処理1,5はいいとして2,3,4あたりを楽したいんだろう?
条件を書き並べるのでは少しも楽にならないって話
俺だけが正解かなw
楽云々じゃなく視認性だろ
記述の手間なんてたいしたこっちゃない
>>959 わざわざCのDirtyな仕様を持ち出すか…
その2,3,4の記法は処理の流れを把握しにくくバグを誘発しやすいので、今ではあまり行儀のよくないものとされている。
ダメってわけでもないけど、少なくとも1Cnf+ioNPのように生産性や保守性を重視したいならそれを理由として持ち出すはずがない。
>>954 他人をバカにして間違ったこと書いたにもかかわらず、
理解出来ないのは他人の頭が悪いせいだと開き直っちゃったんだなw
人間慣れしてないとしか思えないw
互換性無しの全く別のマクロを実装して欲しい
basic系はもういやずら…
いや、生産性や保守性を上げるいい例が
>>959なのでは?
if〜elseでやろうとすると処理2を何度も書く必要が出てくる。
ifだけ並べて処理させるにしても条件が複雑になる。
可視性を上げ、かつメンテナンスを考えればswitchは有用と思うしかない。
でなければswitchなんて使う必要なんてないだろ。
そう考えなければ
>>937みたいな奴が定期的に出てくるのは説明出来ない
もう良いだろ
そんな欲しいなら直接要望出せよ
>>959のswichの例はひどすぎ。
switchを使うときは、
基本的に必ずbreakは入れましょう。
入れない場合はコメントに"意図的にbreakを入れていない"ことを明記しましょう
defaultは必ず入れましょう。
>964
if文で正規表現が使えればいいだけだよね。
if (x ~= /1|2|3/) then
ほげ1
elseif (x ~= /4/) then
ほげ2
else
ほげ3
end
>>964 おいおいまだ自分の間違いを認めてなかったのかよw
>>937みたいなのが存在するのはすでにswitchが
自分のコーディングスタイルに取り込まれてるからであって
客観的に評価してるしてるわけじゃない。
俺はPerlを使いたいとかいうのと同じ次元の話だ。
たとえバッドノウハウでもそれに染まりきってしまって抜け出せない人間はたくさんいる。
>959
あと、この処理系に文句を言っている人が多いが、
問題は、いかに理解しやすく簡潔なコードを書くかであって、
いかに規則的か、いかに美しいかは問題じゃないんだぞ?
特に、全部のcaseを分けて書くっていってるやつ、何回同じ事を書くつもりだ?
てことで、現場ではよく、>959のようなコーディングがされる。
主にi/oエラー系でね。
case 条件 i/o_erro1 i/o_error2 i/o_error3
処理2;
case 条件 i/o_erro4 i/o_error5
処理3;
以上の構文を修正する際にバグらせてしまうやつは、
むしろプログラミングできないやつだ。
なんだか知らないが
おまえらただ語りたいんだな
レスが伸びてるのにswitch文否定派のレスが単発IDの件
条件が100ある場合ifは最悪1から100まで判断するがswitchはそんなに判断しない
そりゃifでもswitchでも同じものが出来るが処理が違うんだよ
switch使ったこと無いんだろうなきっと
>>969 働いたことないの?
自分一人で一生メンテするなら好きにすればいいんだけど
いろんなレベルの人が関わるんだよ?
>以上の構文を修正する際にバグらせてしまうやつは、
>むしろプログラミングできないやつだ。
趣味のPGレベルの発言
>>972 >条件が100ある場合ifは最悪1から100まで判断するがswitchはそんなに判断しない
ちょっとそれサンプルコード書いてみてよw
マクロスレ作ってそこでやれ
早瀬大尉か
懐かしいな
ここはPerlしか使ったことが無い初心者が多そうなインターネッツですね
>>977 初心者でいいから、
>条件が100ある場合ifは最悪1から100まで判断するがswitchはそんなに判断しない
これのサンプルコード書いてみてよw
ifは線形探索だけどswitchはジャンプテーブルで分岐って話でねーの。
>>980 コンパイラならまだそういう理由もないわけではないが、これはインタプリンタの話だから。
×インタプリンタ
○インタプリタ
>973
でもさ、このスレの人間でも、あのswich文を理解できてるじゃん。
大多数の人間が見てすぐに理解できるのであれば、
それが規則に従っていようといまいと、正しいコードだと思うよ。
まあ、書き方はいいとして、
条件式の正規表現に対応してくれればいいだけなんだけどな。
mikoscriptを見習ってマクロは外部実行ファイルにするべき
次スレへswitchヽ(´ー`)ノ
>>984 理解できるも何も959には解説書いてあるし。
実際のソースでは、break入れ忘れのバグなのか意図的なのか
一見しただけで分からなくなる。966の言うようにコメント徹底してるならともかく
動きゃいいってんならどう記述しようが正しいコードってことになるが
そういう話してるんじゃないじゃん
まだswitchが続いていたw
ちなみに
>>959ってC#じゃ動かないね。
コンパイラにはbreakを書き忘れたのか
次のcaseを評価するのが意図した設計なのか判断出来ない。
潜在的なバグの可能性もあるので、コンパイルを通さずにエラーにしちゃってる。
switch(i){
case 1:
case 2:
case 3:
処理;
goto case 4;
case 4:
処理;
break;
default
処理;
break;
}
複雑な処理をするならPerlなりsedなりでスクリプト組んだ方が早いわな。
β43でもmoveto2がカラー表示されない
991 :
名無しさん@お腹いっぱい。:2010/02/20(土) 17:52:50 ID:6HAOTLSm0
梅
え?なにお前等
秀丸マクロ極めて、秀丸を超えるエディタでも作ろうってか
それは無理な話だよポイズン
>987
すまん、>959が言いたいのは、以下みたいに条件2,3,4をまとめられるといいたいだけだぞ?
どこにbreakを入れ忘れられるんだ?
case 条件d: // 2,3,4
処理2;
>>993 よく見ろ。「条件は d は処理2,3,4を実行する」という意味だぞ。
条件 e の前に break; がないのは意図的だと示すためにわざわざ // 2,3,4 とコメントを書いている。
>でもさ、このスレの人間でも、あのswich文を理解できてるじゃん。
と書いておいて自爆すんなよww
個人的にはCのswitchよりVBのSelectの方が好きだ。
>>995 > 条件 e の前に break; がないのは意図的だと示すためにわざわざ // 2,3,4 とコメントを書いている。
それだったら、// 2,3,4 なんて書かずに //FALLTHROUGH って書いてくれた方が
意図が伝わりやすいと思う。
なんだ、前提からしてわかってなかったのかw
>>993 もしかして VBの Select Case あたりと混同してる?
今時フォールスルー論争かい!
ダフのデバイス辺りで決着がついてるというのに。(結論:よくわからない)
個人的にはほとんど使わないなぁ。
理由は、コメント無いと意図してるのか書き忘れかわかりづらいのと、
>>959みたいにきっちりコメント残しても
>>993みたいに勘違いする奴が
出てくるから。
フールプルーフの観点からも言語仕様で使えなくしてるVBの方がこの点に関しては好み。
Javaはなんでフォールスルーにしたんだろうねぇ。
※まぁ使いようなのはgotoと同じだけどね…
>>995 俺は説明してるだけで
>>959書いたのは別人なので俺に言われても…
あと「//FALLTHROUGH って書いてくれた方が…」には賛成できない。
それだと break; 抜いてるのが意図的だと伝わっても、どこでswitchを抜けることを意図してるのかがわからなくなる。
============ここまで俺の自作自演でした============
今日はよく釣れたナ♪
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。