mieki256's diary - Web Board

※ 投稿内容が、日記ページに反映されてない場合は、「日記ページ」で「完全リロード」してみてください。
( IEの場合:「Ctrlキー」+「更新」ボタン / NNの場合:「Shiftキー」+「更新」ボタン )

[[if と switch - case]]


コメントをつける / 削除する
Subject: Re: if と switch - case
Date: 2005/11/19 11:47
From: 名無しさん

switch-caseって最適化の結果によっては「飛ぶ」処理になったりすることもあったような…


コメントをつける / 削除する
Subject: Re: if と switch - case
Date: 2005/11/21 21:47
From: mieki256

> switch-caseって最適化の結果によっては「飛ぶ」処理になったりすることもあったような…

私もソレ、聞いたことがあります。
昔の Oh! X とかでもgcc絡みで載ってたような… <記憶違いかもしれず。

ただ、言語、というか、コンパイラというか、インタプリタというか、
あるいは最適化オプションによっては、違ってきそうではありますね。
gccはやってくれそうだけど、
Perl、Ruby、Python等のLLはどうなのかとか、
javaはそのへんちゃんとやってくれてるのか、とか…よーわからんです。


コメントをつける / 削除する
Subject: Re: if と switch - case
Date: 2005/11/25 21:50
From: otsune <info@otsune.com>
X-URL: http://www.otsune.com/

Pythonにswitch-case文はありません。
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/410695
で例外を使ってswitch caseを実現したり
http://simon.incutio.com/archive/2004/05/07/switch
でいろいろな方法のコメントがついていたりします。(if文で書くのがいちばんPythonっぽい気が)


コメントをつける / 削除する
Subject: Re: if と switch - case
Date: 2005/11/28 18:25
From: mieki256

> Pythonにswitch-case文はありません

知らなかった…!

紹介されたページなり、関連ページを検索したりしましたが、
なるほど、プログラマー自身が処理のやり方を選べる・意識できるあたり、
(ジャンプテーブルにするか、if の羅列にするか等)
ちょっとメリットっぽい感じもしました。
各言語のポリシー(?)って、面白いなぁ…。