S-JIS[2005-01-16/2008-01-18] 変更履歴

プログラミング言語比較

構文(ステートメント)

  • MSX-BASIC [2005-01-16/2006-07-26]
  • VisualBasic for Application [2005-01-16/2006-08-29]
  • VBScript [2007-04-06]
  • VB.NET [2006-04-15/2006-07-24]
  • PASCAL [2005-02-10]
  • PL/I [2005-01-16]
  • Perl [2005-03-12/2006-07-11]
  • C言語(gcc, WIN32) [2005-01-16/2006-10-18]
  • Visual C++(MFC) [2005-01-16/2006-08-23]
  • Java [2005-01-16/2008-01-18]
  • JavaScript [2006-01-08/2006-07-02]
  • C# [2006-03-04/2006-07-24]
  • SQL(Oracle[2005-02-07/2006-07-08]
  • PL/SQL(Oracle) [2005-02-27/2006-07-08]
  • Common Lisp [2005-04-04]
 
代入文 変数=値
LET 変数=値
変数 = 値
Let 変数 = 値
変数 = 値 変数 = 値 変数 := 値 変数 = 値; $変数 = 値;
(変数1,変数2,…) = @配列変数;
変数 = 値; 変数 = 値; 変数 = 値; 変数 = 値 変数 = 値; 項目 = 値
UPDATE
変数 := 値; (setq 変数 値)
SELECT 項目,項目… INTO 変数,変数… FROM テーブル名〜;
ただし、結果が1レコードの場合のみ可
ポインターの代入(→変数宣言 整数型変数 = 値
整数型変数 = VARPTR(変数)
Set 変数 = 値
Long型変数 = VarPtr(変数)
Set 変数 = 値;   ポインター変数 := 値   $リファレンス変数 = \値; ポインター変数 = 値;
ポインター変数 = &変数;
ポインター変数 = 値;
ポインター変数 = &変数;
参照型変数 = 値;   参照型変数 = 値;      
変数=PEEK(アドレス)
POKE(アドレス,値)
なし     変数 := ポインター変数^
ポインター変数^ := 値
  $変数 = $$リファレンス変数;
$$リファレンス変数 = 値;
変数 = *ポインター変数;
*ポインター変数 = 値;
変数 = *ポインター変数;
*ポインター変数 = 値;
なし   なし   なし  
if IF 条件 THEN 〜 ELSE 〜
途中改行不可
IF 条件 GOTO 行番号 ELSE 行番号
If 条件 Then 〜 Else 〜
途中改行不可
If 条件 Then 〜 Else 〜
途中改行不可
  if 条件 then
 begin 〜 end
else
 begin 〜 end
IF 条件 THEN DO;
 〜
END;
ELSE DO;
 〜
END;
if(条件){
 〜
}else{
 〜
}
if(条件){
 〜
}else{
 〜
}
if(条件){
 〜
}else{
 〜
}
if(条件){
 〜
}else{
 〜
}
if(条件){
 〜
}else{
 〜
}
if(条件){
 〜
}else{
 〜
}
  IF 条件 THEN
 〜
ELSE
 〜
END IF;
(if 条件 真の値 偽の値)
(when 条件 〜)
(unless 否定条件 〜)
If 条件 Then
 〜
ElseIf 条件 Then
 〜
Else
 〜
End If
Thenの後で改行する場合はEndIfが必要
If 条件 Then
 〜
ElseIf 条件 Then
 〜
Else
 〜
End If
if(条件){
 〜
}elsif(条件){
 〜
}else{
 〜
}
IF 条件 THEN
 〜
ELSIF 条件 THEN
 〜
ELSE
 〜
END IF;
          SELECT;
 WHEN(条件) DO;
  〜
 END;
 WHEN(条件) DO;
  〜
 END;
 OTHER DO;
  〜
 END;
END;
            CASE
WHEN 条件 THEN 値
WHEN 条件 THEN 値
ELSE 値
END
CASE
WHEN 条件 THEN 〜
WHEN 条件 THEN 〜
ELSE 〜
END CASE;
(cond
 (条件 式)
 (条件 式)
 (t 式))
選択 ON 変数 GOTO 行番号,行番号,…

ON 変数 GOSUB 行番号,行番号,…
Select Case 変数
Case 値,値,…
 処理
Case Else
 その他処理
End Select
Select Case 変数
Case 値,値,…
 処理
Case Else
 その他処理
End Select
  case 変数 of
値,値,…: begin 処理 end;
値: begin 処理 end
end
SELECT(変数);
WHEN(値,値,…) DO;
 処理
END;
OTHER DO;
 その他処理
END;
END;
  switch(変数){
case 値:
case 値:
 処理
 break;
default:
 その他処理
 break;
}

breakが無いと、次の処理も実行する
switch(変数){
case 値:
case 値:
 処理
 break;
default:
 その他処理
 break;
}

breakが無いと、次の処理も実行する
switch(変数){
case 値:
case 値:
 処理
 break;
default:
 その他処理
 break;
}

breakが無いと、次の処理も実行する
switch(変数){
case 値:
case 値:
 処理
 break;
default:
 その他処理
 break;
}

breakが無いと、次の処理も実行する
  DECODE(項目,
値,変換値,
値,変換値,
その他変換値
)
DECODE()は使えない (case 式
 (値 式 〜)
 (値 式 〜)
 (otherwise 式 〜)
)
CASE 項目
 WHEN 値 THEN 変換値
 WHEN 値 THEN 変換値
 ELSE その他変換値
END
CASE 変数
 WHEN 値 THEN 処理
 WHEN 値 THEN 処理
 ELSE その他処理
END CASE;
 
for FOR I=1 TO 10 STEP 1

NEXT
For I = 1 To 10 Step 1
 〜
Next
For I = 1 To 10 Step 1
 〜
Next
For I As Integer = 1 To 10

Next
var i:integer;
for i:=1 to 10 do begin
 〜
end

減らす場合は「to」の代わりに「downto
DCL I BIN(31) FIXED;
DO I=1 TO 10 BY 1;
 〜
END;

「DO I= 1 TO 3, 5, 7 TO 9」なんて書き方も可
for($i=0; $i<10; $i++){
 〜
}
int i;
for(i=0; i<10; i++){
 〜
}
for(int i=0; i<10; i++){
 〜
}

変数iのスコープはループの外まで
for(int i=0; i<10; i++){
 〜
}

変数iのスコープはループ内のみ
for(var i=0; i<10; i++){
 〜
}
for(int i=0; i<10; i++){
 〜
}
  FOR I IN 1..10 LOOP
 〜
END LOOP;

減らす場合は「IN REVERSE 1..10
変数Iのスコープはループ内のみ

FORALL I IN 〜
BULK In-BINDの構文
(do ((i 0 (+ i 1)))
 (< i 10)
 〜)
(dotimes (i 10)
 〜)
(loop for i from 1 to 10 by 1 〜)

減らす場合はdownto
FOR I=1 TO 0:NEXT
条件を満たさなくても最低1回実行される
For I=1 To 0:Next
条件を満たさないと1度も実行されない
    条件を満たさないと1度も実行されない     for(i=0;i<0;i++);
条件を満たさないと1度も実行されない
for(i=0;i<0;i++);
条件を満たさないと1度も実行されない
for(i=0;i<0;i++);
条件を満たさないと1度も実行されない
for(i=0;i<0;i++);
条件を満たさないと1度も実行されない
    FOR I IN 1..0 LOOP〜END LOOP
条件を満たさないと1度も実行されない
(dotimes (i 0) 〜)
0以下だと一度も実行されない
10 FOR I=1 TO 2
20 FOR J=1 TO 3
30 〜
40 NEXT J,I

NEXTのみを2つ書いてもよい
For I=1 To 2
For J=1 To 3

Next J
Next I

MSX-BASICと同様の書き方も可
    var i,j:integer;
for i:=1 to 2 do
 for j:=1 to 3 do begin
  〜
 end
DCL I BIN(31) FIXED,
    J BIN(31) FIXED;
DO I=1 TO 2;
 DO J=1 TO 3;
  〜
 END;
END;
  int i,j;
for(i=0;i<2;i++){
 for(j=0;j<3;j++){
  〜
 }
}
for(int i=0;i<2;i++){
 for(int j=0;j<3;j++){
  〜
 }
}
for(int i=0;i<2;i++){
 for(int j=0;j<3;j++){
  〜
 }
}
for(var i=0;i<2;i++){
 for(var j=0;j<3;j++){
  〜
 }
}
for(int i=0;i<2;i++){
 for(int j=0;j<3;j++){
  〜
 }
}
     
なし(GOTO) Exit For     なし(goto) LEAVE;   break; break; break; break; break;   EXIT;
EXIT WHEN 条件;
(return )
for each なし For Each 変数 In 配列名
 〜
Next
For Each 変数 In 配列名
 〜
Next
For Each 変数 As 型 In 配列名

Next
    foreach $変数 (@配列名){
 〜
}
    for(変数 : 配列名) {
 〜
}
for(var i in 配列名){
 変数=配列[i]
 〜
}
foreach(型 変数 in 配列名)
{
  〜
}
  カーソルに対しては
FOR I IN カーソル名 LOOP
 〜
END LOOP
FETCHと終了判定が自動的に行われる
(dolist (i リスト) 〜)
(loop for i in リスト do 〜)
while なし While 条件
 〜
Wend
Do While 条件
 〜
Loop
While 条件
 〜
Wend
Do While 条件
 〜
Loop
  while 条件 do begin
 〜
end
DO WHILE(条件)
 〜
END;
while(条件){
 〜
}
until(終了条件){
 〜
}
while(条件){
 〜
}
while(条件){
 〜
}
while(条件){
 〜
}
while(条件){
 〜
}
while(条件){
 〜
}
  WHILE 条件 LOOP
 〜
END LOOP;
(loop while 条件 do 〜)
(loop until 終了条件 do 〜)
DOはExit Do DOはExit Do     LEAVE;   break; break; break; break; break;   EXIT;
EXIT WHEN 条件;
 
repeat なし Do
 〜
Loop Until 終了条件
Do
 〜
Loop Until 終了条件
  repeat
 〜
until 終了条件
  do{
 〜
}while 継続条件;
do{
 〜
}until 終了条件;
do{
 〜
}while(継続条件);
do{
 〜
}while(継続条件);
do{
 〜
}while(継続条件);
do{
 〜
}while(継続条件);
do{
 〜
}while(継続条件);
     
Exit Do Exit Do         break; break; break; break; break;      
無限ループ 10 〜
20 GOTO 10
Do
 〜
Loop
Do
 〜
Loop
        for(;;){
 〜
}
for(;;){
 〜
}
for(;;){
 〜
}
for(;;){
 〜
}
    <<ラベル>>
LOOP
 〜
END LOOP;
(loop 〜)
FOR I=1 TO 2:I=1:〜:NEXT
なし(GOTO) Exit Do
外部からはESCキーで終了
Exit Do         break; break; break; break;     EXIT;
EXIT WHEN 条件;
EXIT ラベル WHEN 条件;
(return )
go to   ラベル:〜     label 数字;
↑変数宣言より前で宣言する必要あり。0〜9999
数字:〜
ラベル:〜   ラベル:〜 ラベル:〜 なし なし     <<ラベル>>
(tagbody
 〜
タグ
 〜
)
GOTO 行番号 GoTo ラベル     goto 数字 GOTO ラベル;   goto ラベル; goto ラベル; goto ラベル; (go タグ)
特定ループからの脱出 なし(GOTO) なし(GoTo)       ラベル:DO WHILE(条件);
 LEAVE ラベル;
END;
  while(条件){
 goto ラベル;
}
ラベル:〜
while(条件){
 goto ラベル;
}
ラベル:〜
ラベル:while(条件){
 break ラベル;
}
ラベル:while(条件){
 break ラベル;
}
       
 
メモリ確保
参考:null
なし Dim 参照型変数 As New クラス
Set 参照型変数 = New クラス
    new(ポインター変数)     ポインター変数=malloc(サイズ); ポインター変数=new クラス; 参照型変数=new クラス(); 変数=new クラス(); 参照型変数=new クラス();      
Set 参照型変数 = Nothing     dispose(ポインター変数)     free(ポインター変数); delete ポインター変数; なし(JavaVMがGCで勝手に解放) なし        
明示破棄       Using 変数 As New 型

End Using

Using 変数 = 初期化

End Using
        delete時(またはローカル変数で、スコープ外になって破棄される時)にデストラクターが呼ばれる     using(型 変数=初期化)
{
 〜
}

このブロックを終了するときに変数.Dispose()が呼ばれる。
この型はIDisposeを継承する必要がある
     
対象の省略 なし With 変数
 .メンバー=値
 !メンバー=値
End With
With 変数
 .メンバー=値
 !メンバー=値
End With
              with(変数){
 メンバー=値;
 メソッド();
}
       
無処理 なし             ; ; ; ; ;   NULL;  

言語比較全般へ戻る / 参考文献 / プログラム記号比較 / 技術メモへ戻る
メールの送信先:ひしだま