2. 流れ図くんのサンプル¶
ここでは、具体的に流れ図くんとフローチャートの対応関係について書きます。ソースコードとフローチャートと順番に書くことで、ソースコードの処理の流れを明確にします。
Contents
2.1. if...else文¶
2.1.2. ソースコード例¶
if..elseの例
020論語.txt
outputfile "nagarezukun.xls";
fc("論語"){
output "判断";
terminator("Start");
proc("16→age");
proc("\"\"→result");
if ("\S8{age >= 70}" ){
proc("\S8{\"心の欲する所に従って矩を踰えず\"→result}");
}
elseif ("\S8{age >= 60}" ){
proc("\"耳順う\"→result");
}
elseif ("\S8{age >= 50}" ){
proc("\"天命を知る\"→result");
}
elseif ("\S8{age >= 40}" ){
proc("\"惑わず\"→result");
}
elseif ("\S8{age >= 30}" ){
proc("\"立つ\"→result");
}
elseif ("\S8{age >= 15}"){
proc("\"学に志す\"→result");
}
else{
proc("\"無し\"→result");
};
proc("表示(result)");
return("End");
};
2.2. 三項の条件演算子¶
2.2.2. ソースコード例¶
三項の条件演算子の例
010三項の条件演算子.txt
outputfile "nagarezukun.xls";
fc("三項の条件演算子"){
output "三項の条件演算子";
terminator("Start");
proc("10→num");
proc("\"\"→str");
if("\S8{num>=60}"){
proc("\"合格\"→str");
}
else{
proc("\"不合格\"→str");
};
proc("表示(str)");
return("End");
};
2.3. switch文¶
2.3.2. ソースコード例¶
switch文の例
030swtich_ex.txt
outputfile "nagarezukun.xls";
fc("月"){
output "swtich_ex";
terminator("Start");
proc("2→month");
proc("\"\"→result");
switch("month"){
case ("1"){
proc("\"January\"→result");
}
case ("2"){
proc("\"February\"→result");
}
case ("3"){
proc("\"March\"→result");
}
case ("4"){
proc("\"April\"→result");
}
case ("5"){
proc("\"May\"→result");
}
case ("6"){
proc("\"June\"→result");
}
case ("7"){
proc("\"July\"→result");
}
case ("8"){
proc("\"August\"→result");
}
case ("9"){
proc("\"September\"→result");
}
case ("10"){
proc("\"October\"→result");
}
case ("11"){
proc("\"November\"→result");
}
case ("12"){
proc("\"December\"→result");
}
case ("default"){
proc("assert false");
}
};
proc("表示(result)");
return("End");
};
2.4. for文¶
2.4.2. ソースコード例¶
1~10の合計を求めるfor文の例
040for_ex.txt
outputfile "nagarezukun.xls";
fc("for例"){
output "for_ex";
terminator("Start");
proc("0→sum");
for("1→i" ,"i<=10" , "i+1→i"){
proc("sum+i→sum");
};
proc("表示(sum)");
return("End");
};
2.5. for-each文¶
2.5.2. ソースコード例¶
1~10の合計を求める。for-each文の例
050for_each例.txt
outputfile "nagarezukun.xls";
fc("for-each例"){
output "for-each例";
terminator("Start");
proc("\S8{\{1,2,3,4,5,6,7,8,9,10\}→nums}");
for("0→i","i<\S6{nums個数}","i+1→i"){
proc("nums[i]→num");
proc("sum+num→sum");
};
return("End");
};
2.6. while文¶
2.6.2. ソースコード例¶
1~10の合計を求める。while文の例
060while.txt
outputfile "nagarezukun.xls";
fc("while例"){
output "while_ex";
terminator("Start");
proc("1→i");
proc("0→sum");
while("i<=10"){
proc("sum+i→sum");
proc("i+1→i");
};
proc("表示(sum)");
return("End");
};
2.7. do..while文¶
2.7.2. ソースコード例¶
1~10の合計を求める。do-while文の例
070do_while.txt
outputfile "nagarezukun.xls";
fc("do..while例"){
output "do..while_ex";
terminator("Start");
proc("1→i");
proc("0→sum");
do{
proc("sum+i→sum");
proc("i+1→i");
}while("i<=10");
proc("表示(sum)");
return("End");
};
2.8. continue文¶
2.8.1. 構文¶
continue文の構文は下記を参考にしてください。
2.8.2. ソースコード例¶
continue文の例
080continue.txt
outputfile "nagarezukun.xls";
fc("continue")
{
output "continue";
terminator("Start");
proc("0→sum");
for ("1→i", "i<=10", "i+1→i","","C") {
if ("i = 3") {
comment("continue");
continue; //このループの残りをスキップしforに戻る。
};
proc("sum+i→sum");
};
proc("表示(sum)");
terminator("End");
};
2.9. break文¶
2.9.1. 構文¶
break文の構文は下記を参考にしてください。
2.9.2. ソースコード例¶
break文の例
090break.txt
outputfile "nagarezukun.xls";
fc("break")
{
output "break";
terminator("Start");
proc("0→sum");
for ("1→i", "i<=10", "i+1→i","B","") {
proc("sum+i→sum");
if ("\S8{sum>=30}") {
comment("break");
break; // ループを脱出する。
};
};
proc("表示(sum)");
terminator("End");
};
2.10. ラベル付きcontinue文¶
2.10.1. 構文¶
ラベル付きcontinue文は無いためgoto文、for文、while文、do while文を利用して実現します。
多重ループから、goto文を利用してその後の処理をスキップします。
2.10.2. ソースコード例¶
ラベル付きcontinue文の例
100label_continue.txt
outputfile "nagarezukun.xls";
fc("ラベル付きcontinue")
{
output "label_continue";
terminator("Start");
proc("sum→0");
for ("1→i", "i<=10", "i+1→i","","C") {
for(" 1→j","j<=10","j+1→j"){
if ("i = 3") {
comment("continue ラベル");
goto("C");//continue このループの残りをスキップしforに戻る。
};
proc("sum+i*j→sum");
};
};
proc("表示(sum)");
terminator("End");
};
2.11. ラベル付きbreak文¶
2.11.2. ソースコード例¶
ラベル付きbreak文の例
110label_break.txt
outputfile "nagarezukun.xls";
fc("ラベル付きbreak")
{
output "label_break";
terminator("Start");
proc("sum→0");
for ("1→i", "i<=10", "i+1→i","B","") {
for(" 1→j","j<=10","j+1→j"){
proc("sum+i*j→sum");
if ("\S8{sum>=15}") {
comment("break ラベル");
goto("B"); //break; // ループを脱出する。
};
};
};
proc("表示(sum)");
terminator("End");
};
2.12. goto文¶
2.12.2. ソースコード例¶
goto文の例
120goto.txt
outputfile "nagarezukun.xls";
fc("gotoサンプル")//タイトル設定
{
//出力シート指定------------------------
output "gotoサンプル";//出力シート名設定
//--------------------------------------
terminator("Start");
goto("B");
inconnector("A");
proc("表示(01)");
label("B");
proc("表示(02)");
goto("D");
inconnector("C");
proc("表示(03)");
label("D");
return("End");
};