投稿
クロ t.n-417
これってエラー出ないんですね。 一個目で真偽が確定したらそれ以降は スキップしてるようです。
4そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
言語仕様のページにこっそり書いてあるのですが、判定の「ショートカット」と言って、&&と||は左から判定していってそれ以上無駄なら、以降の判定をショートカットします。 重いループの中とかで意識するとちょっと高速化に繋がるかもしれません。 スキップされる記述が副作用があるとバグになるので注意。 IF A && NANIKA() THEN
2そうだね
プレイ済み
返信[2]
親投稿
クロ t.n-417
けいさん コメントありがとうございました。仕様にちゃんとありましたか。 例えば && なら偽になりやすい方を前に持って来たほうが速くなるってことですね。
2そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
そう!そういうことです(^O^) 仕事でC言語でプログラム組んでる時も一応気にして作ってます。
1そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
&&は常に両方判定されますよ (論理を考えれば解ります)
0そうだね
プレイ済み
返信[5]
親投稿
式1 && 式2 式1が0なら無条件で0なのでスキップ XORとの混同?
1そうだね
プレイ済み
返信[6]
親投稿
DEF R() ?"実行" RETURN RND(2) END IF R() && R() THEN ?"実行" "実行"と表示される数がコロコロ変わる
0そうだね
プレイ済み
返信[7]
親投稿
連続書き込みすまないが ||のほうのスキップは初耳だったりする ちなみに、mkIIにはこれらがなかったのでTHEN IFとか書いていた。
1そうだね
プレイ済み
返信[8]
親投稿
れい rei-nntnd
ショートカットじゃなくてショートサーキットな。
0そうだね
プレイ済み
返信[9]
親投稿
けい kei0baisoku
あまさとしおんさんは多分大丈夫だと思いますが、せっかくなので分かりやすいサンプルを書いてみました。 プリントしつつTRUEかFALSEを返す関数で試します。
0そうだね
プレイ済み
返信[10]
親投稿
けい kei0baisoku
実行結果の画面です。 左の時点でIF文の結果が確定したら、右側の関数は呼ばれることすらありません。
0そうだね
プレイ済み
返信[11]
親投稿
けい kei0baisoku
>れいさん えっ、ネタじゃなくてマジですか!?(°Д°) 公式ページのスペック表見直してもやっぱり「ショートカット」って書いてあったのですが、方言みたいな違いでしょうか?
0そうだね
プレイ済み
返信[12]
親投稿
MIKI ifconfig
ショートカットって表現はプチコンで初めて見ましたが、しっくりしすぎて 10 年前からそう言ってる気がしてる。 c では特に名称はなかったような??
0そうだね
プレイ済み
返信[13]
親投稿
Godot orz_127
検索してみたら「サーキット演算子」でてきました。 日本語だと「短絡演算子」というみたいですね。 で「ショートカット演算子」のほうも。 「ショートカット」はJavaの説明が よくヒットしている気が。 Java使いは「ショートカット」?
0そうだね
プレイ済み
返信[14]
親投稿
Godot orz_127
すみません使い慣れないので 「ショート」が抜けた^^ 先程の「サーキット演算子」は「ショートサーキット演算子」の誤りです。
0そうだね
プレイ済み
返信[15]
親投稿
れい rei-nntnd
ショートカットは間違い。 なぜかと言うと… ここにはそれを証明する余白が足りない。
0そうだね
プレイ済み
返信[16]
親投稿
けい kei0baisoku
>れいさん、みきさん、Godotさん ありがとうございます。正式には「ショートサーキット演算子」のようですね。 ここではそれだけ分かりましたら十分です(^^; 私自身も機能はずっと前から知ってましたが、言語仕様による最適化の一つくらいの認識で名前があるとか考えたことがありませんでした。 プチコンの公式サイトは、まあいろいろユルいので分かりやすそうな語彙を選んだくらいに考えおくことにします(´ω`)
0そうだね
プレイ済み
返信[17]
親投稿
れい rei-nntnd
ショートカットじゃ近道って意味なんでニュアンス違っちゃう。 Typoなら報告しといたほうがいいか。
0そうだね
プレイ済み
返信[18]
親投稿
MIKI ifconfig
short-circuit evaluation または minimum evaluation かー。 初耳だったなあ。勉強になった!!
0そうだね
プレイ済み