見出し画像

はじめてのJScript+WSH その5 JScriptのifとfor

はじめに

JScriptのif文とfor文を確認していきます。

if文

if文はif()の括弧の中がtrueかfalseか判断して、trueであれば{}の中の処理を実行します。

var a = 10;
var b = 10;
var str = "";

if(a==b){
    str = "同じ"
}else{
    str = "違う"
}
WScript.echo(str); => 同じ

論理式

trueかfalseの判断は、下記を組み合わせて使います。

  • 論理 NOT !

  • より小さい <

  • より大きい >

  • より小さいか等しい <=

  • より大きいか等しい >=

  • 等しい ==

  • 等しくない !=

  • 論理 AND &&

  • 論理 OR ||

※≧を「大なりイコール」、≦を「小なりイコール」、≠を「ノットイコール」と呼びますが、この順に「>=」、「<=」、「!=」と書くと覚えると簡単です。


論理NOTは、trueをfalseへ、falseをtrueへ変換します。
 !(true) => false
 !(false) => true

論理ANDは、すべてtrueであればtrueになります。
 true && true => true
 true && true && true => true
 true && false => false
 true && true && false => false
※「かつ」で覚え、「a==b && a == c」は「a==bかつa==c」ならばtureと考えるとわかりやすいです。

論理ORは、一つでもtrueであればtrueになります。
 true || true => true
 true || false => true
 false || false => false
 true || false || false => true
※「または」で覚え、「a==b || a == c」は「a==bまたはa==c」ならばtrueと考えるとわかりやすいです。

複数条件があるif文

複数条件がある場合は下記のように記載可能です。

var a = 10;
var b = 5;
var c = 10;
var str = "";

if(a==b){
    str = "aとbが同じ"
}else if(a==c){
    str = "aとcが同じ"
}else{
    str = "aはbともcとも異なる"
}

if文を1行で記載

最初の例のような簡単なif文は1行で書くことが可能です。

var a = 10;
var b = 5;
var str = "";

( a == b )? str = "同じ" : str = "違う";
WScript.echo(str); // => 違う

下記の書き方も可能です。

str = ( a == b )? "同じ" :  "違う";

1行で書いて他メンバーや未来の自分が戸惑う可能性がある場合は使用しない or コメントを残す方が親切だと思います。

for文

for文の書き方は下記のとおりです。
i=0から始めて、i<100がtrueの間処理をし、1ループごとにi++する。

for(i = 0; i < 100; i++){
    WScript.echo(i);      // => 0 1 2 ... 98 99 と表示
}

※下記のようにvarを入れなくても上記の3行のみで動作します。varを入れても動きます。また、forの後に i の値を出力すると100になります。(varがあってもなくても同じ)

for(var i = 0; i < 100; i++){
    WScript.echo(i);      // => 0 1 2 ... 98 99 と表示
}

WScript.echo(i);      // => 100 と表示

continueとbreak

for文の制御をするために使います。
 continue:現ループの処理を停止し、次のループへ行く
 break:for文から抜ける(次のループへは行かない

for(var i = 0; i < 100; i++){
    if(i % 2 == 1){
        continue;         // => 奇数なら次のループへ行く
    }
    if(i == 50){
        break;           // => 50になったらループを抜ける
    }
    WScript.echo(i);      // => 0 2 4 ... 48 と表示
}

WScript.echo(i);      // => 50 と表示

また、上記のif文を1行で書くと下記のように書けます。

for(var i = 0; i < 100; i++){
    if(i % 2 == 1) continue;
    if(i == 50)    break;

    WScript.echo(i);      // => 0 1 2 ... 48 と表示
}

while文

また、for文の一番最初の例は下記のようなwhile文で記載することも可能です。

var i = 0;
while(i < 100){
    WScript.echo(i);      // => 0 1 2 ... 99 と表示
    i++;
}
var i = 0;
do{
    WScript.echo(i);      // => 0 1 2 ... 99 と表示
    i++;
}while(i < 100)

おわりに

今回も長かったので、覚えきれないと思います。コードを書いていくうちにすぐ慣れる(覚える)部分なので、こういう機能があるんだと覚えてください(特にcontinueとbreakは忘れがちなので覚えておいてください)


余談ですが、if文の書き方は言語によって結構異なります。
・ >= を -ge と記載したり(powershell) ※ge:greater than or equal to
・else if を elsif と記載したり(Ruby) 
・else if を elseif と記載したり(php)
・if (a==b) {の行を、if ($a==$b) : という書き方をしたり(php)※phpは変数の前に$がつく
・if (a==b) {の行を、if a==b : という書き方をしたり(python)
・if (a==b) {の行を、if a==b { という書き方をしたり(go)
・if (a==b) {の行を、if(a==b) then という書き方をしたり(vba)

C、C++、C#、Java、JavaScript、TypeScriptはJScriptと同じ書き方です。

次の記事

前の記事


この記事が気に入ったらサポートをしてみませんか?