言語ごとの特徴 · 43
Craykon ならではのきまり
母語で書けるキーワード、計算を止める「なし」、厳密な ==、下へ流れない選択。
この単元は Craykon 向けです。
この単元は Craykon そのものの話です。
ほかの7言語のキーワードは英語(if・for・return)だけです。
Craykon はキーワードを母語で書け、なし・==・選択 がほかの言語より厳密です。
下の例は欠席(-)を なし として入れた点数のリストから、なしは飛ばし、残りを 選択 で成績分けしてから平均を出します。
n = コンソール.行読み().数に();점수들 = [];繰り返す (i = 0; i < n; i++){ 줄 = コンソール.行読み(); もし (줄 == "-") { 점수들.追加(なし); } でなければ { 점수들.追加(줄.数に()); }}합 = 0;낸사람 = 0;それぞれ (점수 の中 점수들){ もし (점수 == なし) { コンソール.書く("? " + 점수); 次へ; } 합 += 점수; 낸사람 += 1; 選択 (数学.切り下げ(점수 / 10)) { 場合 10: 場合 9: コンソール.書く(점수 + " A"); 抜ける; 場合 8: コンソール.書く(점수 + " B"); 抜ける; それ以外: コンソール.書く(점수 + " C"); 抜ける; }}コンソール.書く(합 / 낸사람);コンソール.書く("85" == 85);5 92 - 78 85 -
92 A ? 빈값 78 C 85 B ? 빈값 85 false
ポイント
- キーワードは母語で書けます。
1つのスクリプトの中で混ぜても同じプログラムなので、もし (n > 3) { Console.WriteLine(n); }も動きます。 - 保存されて実行されるプログラムは1つなので、画面の言語を変えると同じコードがその言語で表示し直されます。
エディタでは同じコードをタイルで組み立てることもでき、タイルと文字を行き来しながら直してかまいません。 なしは「値がない」ことです(ほかの言語のnull・None)。
なしで計算したり大小を比べたりすると、その場で止まります。
文字列とつなぐと止まらず빈값(なしの韓国語名)と表示されます(例の? 빈값)。==は厳密です。
型が違えば必ず偽なので、0 == 偽も偽です(画面にはfalse)。
JavaScript の===と同じだと考えてください。選択は合った場合を1つだけ実行し、下へ流れ落ちないので抜けるは書かなくてかまいません。
複数の値は場合 10, 9:のようにカンマでまとめます。- 数は1種類だけです(JavaScript と同じ64ビットの浮動小数点数)。
7 / 2は3.5なので、十の位は数学.切り下げ(점수 / 10)、整数の割り算は数学.商(7, 2)(→3)を使います。
2^53 を超える整数は正確ではありません。
言語ごとの書き方
| Craykon | 日本語のキーワード もし・でなければ・繰り返す・それぞれ・間・返す・選択 は、英語で if・else・for・foreach・while・return・switch、韓国語で 만약・반복…、中国語で 如果・循环… です。名前も コンソール.書く・Console.WriteLine・콘솔.쓰기・控制台.输出 はどれも同じものです |
|---|
よくある間違い
なしで計算した
点数 = なし;
コンソール.書く(点数 + 1);→ なしでは計算できない(+)というエラーで止まります。JavaScript は null + 1 が 1、undefined + 1 が NaN になって黙って間違った数を出しますが、Craykon はそういう数を作りません
計算の前に もし (点数 == なし) で先に確かめます。
キーワードを変数名に使った
場合 = 3;→ case・default は選択(switch)の中だけで使うというエラー。すべての言語のキーワードが予約語なので、自分・場合・の中・if・경우 も名前に使えません
キーワードではない別の名前を選びます。
読んだ文字列をそのまま数と比べた
コンソール.書く("85" == 85);→ false — コンソール.行読み() で読んだ値はいつも文字列で、型が違えば == は偽です
数と比べるなら、先に .数に() で変えます。
言語ごとの違い
なしは計算に入った瞬間に止まります。
リストや入力になしが混ざる可能性があるなら、足したり比べたりする前に
なしは計算に入った瞬間に止まります。
リストや入力になしが混ざる可能性があるなら、足したり比べたりする前に
== なし で先に取り除いてください。