ForNext
Only Do What Only You Can Do
077. 2つの値を交換する
VBScript
JScript
Perl
更新日 : 2010.10.18
sub swap1 { my ($nx, $ny) = @_; my $tmp = $nx; $nx = $ny; $ny = $tmp; } sub swap2 { my ($nx, $ny) = @_; my $tmp = $$nx; $$nx = $$ny; $$ny = $tmp; } $na = 57; $nb = 21; printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; &swap1($na, $nb); printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; $na = 57; $nb = 21; &swap2(\$na, \$nb); printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; $na = 57; $nb = 21; ($na, $nb) = ($nb, $na); printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n";
L:\>perl lesson_10_077.pl 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57 整数A:21 整数B:57
PHP
更新日 : 2010.11.03
<?php function swap1($nx, $ny) { $tmp = $nx; $nx = $ny; $ny = $tmp; } function swap2(&$nx, &$ny) { $tmp = $nx; $nx = $ny; $ny = $tmp; } $na = 57; $nb = 21; printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; swap1($na, $nb); printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; $na = 57; $nb = 21; swap2($na, $nb); printf("整数A:%d\n", $na); printf("整数B:%d\n", $nb); print "\n"; ?>
L:\>php lesson_10_077.php 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57
Python
更新日 : 2010.11.17
# coding: Shift_JIS def swap1(nx, ny): tmp = nx nx = ny ny = tmp def swap2(nx, ny): return ny, nx na = 57 nb = 21 print "整数A:%d" % na print "整数B:%d" % nb print swap1(na, nb) print "整数A:%d" % na print "整数B:%d" % nb print na = 57 nb = 21 na, nb = swap2(na, nb) print "整数A:%d" % na print "整数B:%d" % nb print na = 57 nb = 21 nb, na = na, nb print "整数A:%d" % na print "整数B:%d" % nb print
N:\>python lesson_10_077.py 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57 整数A:21 整数B:57
Ruby
更新日 : 2010.11.01
def swap1(nx, ny) tmp = nx nx = ny ny = tmp end def swap2(nx, ny) return ny, nx end na = 57 nb = 21 printf("整数A:%d\n", na) printf("整数B:%d\n", nb) puts "" swap1(na, nb) printf("整数A:%d\n", na) printf("整数B:%d\n", nb) puts "" na, nb = nb, na printf("整数A:%d\n", na) printf("整数B:%d\n", nb) puts "" na = 57 nb = 21 na, nb = swap2(na, nb) printf("整数A:%d\n", na) printf("整数B:%d\n", nb)
L:\>ruby l:\lesson_10_077.rb 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57 整数A:21 整数B:57
PowerShell
Scala
F#
C
更新日 : 2010.10.08
#include <stdio.h> void swap1(int nx, int ny) { int tmp = nx; nx = ny; ny = tmp; } void swap2(int* nx, int* ny) { int tmp = *nx; *nx = *ny; *ny = tmp; } int main(int argc, char* argv[]) { int na = 57; int nb = 21; printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); swap1(na, nb); printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); na = 57; nb = 21; swap2(&na, &nb); printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); return 0; }
R:\>lesson077\Project1.exe 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57
C++
更新日 : 2010.10.13
#include <stdio.h> void swap1(int nx, int ny) { int tmp = nx; nx = ny; ny = tmp; } void swap3(int& nx, int& ny) { int tmp = nx; nx = ny; ny = tmp; } int main(int argc, char* argv[]) { int na = 57; int nb = 21; printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); swap1(na, nb); printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); na = 57; nb = 21; swap3(na, nb); printf("整数A:%d\n", na); printf("整数B:%d\n", nb); puts(""); return 0; }
T:\>lesson077\Project1.exe 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57
C++Builder
VC++
C#
Java
Objective-C
D
VB
VB.NET
Delphi
更新日 : 2010.09.24
program Project1; {$APPTYPE CONSOLE} uses SysUtils; procedure swap1(nx:Integer; ny:Integer); var tmp: Integer; begin tmp := nx; nx := ny; ny := tmp; end; procedure swap2(var nx:Integer; var ny:Integer); var tmp: Integer; begin tmp := nx; nx := ny; ny := tmp; end; procedure swap3(nx:PInteger; ny:PInteger); var tmp: Integer; begin tmp := nx^; nx^ := ny^; ny^ := tmp; end; procedure main(); var na, nb: Integer; begin na := 57; nb := 21; Writeln(Format('整数A:%d', [na])); Writeln(Format('整数B:%d', [nb])); Writeln(''); swap1(na, nb); Writeln(Format('整数A:%d', [na])); Writeln(Format('整数B:%d', [nb])); Writeln(''); na := 57; nb := 21; swap2(na, nb); Writeln(Format('整数A:%d', [na])); Writeln(Format('整数B:%d', [nb])); Writeln(''); na := 57; nb := 21; swap3(@na, @nb); Writeln(Format('整数A:%d', [na])); Writeln(Format('整数B:%d', [nb])); Writeln(''); end; begin main; end.
S:\>lesson077\Project1.exe 整数A:57 整数B:21 整数A:57 整数B:21 整数A:21 整数B:57 整数A:21 整数B:57