見出し画像

いろいろな言語のfor文

NW業界は、いろいろな言語を扱うことが多いです。
サラリーマンなら、VBAやbat(バッチ)だけで日々の業務を自動化することができます。
しかし、NWだとTera TermやLinuxと携わることも多いので、シェルスクリプトやPython、JavaScriptなど様々な言語を目にすることがあります。

ご存じの通り、それぞれの言語にはそれぞれの書き方があります。
毎日触れるような言語だと、それはそれはわかるのですが、
「あれ...batだとfor文はどうやって書くんだっけ?」の時に、さっと見れるnoteがあれば、開発の手助けになると思いました。

※本当にfor文しか書かれておりません

今回は、そのようなマルチエンジニアのために各業界のfor文をまとめてみました。

C言語

/* 指定回数繰り返し */

for (int i = 0; i < 10; i++){
    printf("%d回目の処理です¥n", i);
}

基本形なので、特に言うことはないですね。
\nは改行コードになります。


Python 3

 #指定回数繰り返し 

for i in range(10):
    print(i, "回目の処理です\n")

range(5, 10) にした場合、[5, 6, 7, 8, 9]となります。
range(0, 10, 2) にした場合、[0, 2, 4, 6, 8]となります。

 #配列の読み込み 

arr = ['a', 'b', 'c', 'd', 'e']
for str in arr:
    print("アルファベット:", str, "\n")

ファイル読み込みの場合、「with open(path) as line:」の方がが便利です。
pathは、読み込むファイル名(.txtなど)を記述してください。


VBA

'指定回数繰り返し

For i = 1 To 10
    msgbox i + "回目の処理です" + vbCrLf
Next i
'セルの読み込み

Dim i As Integer
For Each str In Range("A1:A10")
    msgbox i + "番目のセル:" + str + vbCrLf
    i = i + 1
Next str

Excelのセルは、1から始まるのでそこが注意ですね。
vbCrLfは改行コードになります。


bat(バッチ)

:指定回数繰り返し

for /l %%i in (0,1,10) do (
    echo %%i回目の処理です
)

開始値を0、増分を1、終了値を10としています。

:ファイル読み込み

setlocal enabledelayedexpansion

set i=1
for /f %%s in (path) do (
   echo !i!行目:%%s
   set /a i+=1
)

endlocal

pathは、読み込むファイル名(.txtなど)を記述してください。
batは、forの中で値を変化させる場合、setlocal enabledelayedexpansionとendlocalで挟む必要があります。


bash(シェルスクリプト)

 #指定回数繰り返し 

for ((i=0; i<10; i++)); do echo $i回目の処理です; done

ワンライナーで書けるのは、bashの魅力の一つでもあります。

 #指定回数繰り返し 

for i in {1..10} ; do
    echo ${i}回目の処理です
done

範囲オブジェクト{1..10}を読み込ませることもできます。
${i}は、省略して$iでも構いません。

 #配列の読み込み 

arr=("a" "b" "c")
i=0
for str in ${arr[@]} ; do
    echo ${i}番目の要素:${str}
    i=$((i + 1))
done

@は配列の中身すべてを表します。

 #コマンド結果の読み込み 

for log_name in `ls -1 ./` ;do
    echo ${log_name}
done

`ls -1 ./`は、コマンドの結果を配列としてみなし、ループさせています。
ファイルの読み込みは、`cat path`でいけそうですね。
pathは、読み込むファイル名(.txtなど)を記述してください。


Tera Term

;指定回数繰り返し

for i 1 10
    sendln 'show cpu'
	pause 5    
next

5秒ごとにcpu使用率を確認しています。


JavaScript

//指定回数繰り返し

for (var i = 0; i < 10; i++){
    console.log (i + "回目の処理です\n");
}

とてもCに近い書き方になっています。


Ruby

 #指定回数繰り返し 

for i in 1..10 do
    print(i, "回目の処理です\n")
end

範囲オブジェクト1..10を読み込ませることもできます。
オブジェクト指向なので、繰り返しもオブジェクトとセットの考えですね。

 #配列の読み込み 

arr = [0, 1, 2, 3]
arr.each do |i|
    puts i, "回目の処理です\n"
end

ブロックパラメーター(=|~|で囲まれた中にある変数)へ、
配列の各要素が順に渡されます。
putsも出力の一種になります。


Go(golang)

//指定回数繰り返し

for i := 0; i < 10; i++ {
    fmt.Println("%d回目の処理\n", i)
}

とてもCに近い書き方になっています。
:=(コロンイコール)で初期化するところが独特ですね。

//配列の読み込み

arr := [5]string{"a", "b", "c", "d", "e"}
for i, s := range arr {
   fmt.Printf("%d番目の要素:%s\n", i, s)
}

インデックス(i)を無効に場合は、_, s とアンダーバーで打ち消します。
多重代入の概念を持つため、2変数を初期化可能です。






プログラムをもっと知りたい、いろんなツールをお借りしたいと思いましたら、フォローしてくださると幸いです。

サポートしてくださるお気持ちだけで嬉しいです。