ユーザーの入力が正しければ、その値を返してサブルーチンを抜けます。正しくない場合には1.に戻ります。Perl版(入力チェックが手抜きです。)
$number=&input;
print "$number\n";
# 入力サブルーチン
sub input {
my $number;
while () { # 無限ループ
print "012\n";
print "345\n";
print "678\n";
print "0-8の数字をいれてください。";
$number=<stdin>;
chomp($number);
if ($number>=0 && $number<=8) { # 数字チェック。文字列も0として通ってしまう。TT
return $number;
} else {
print "入力が正しくありません。";
}
}
}
C版(入力が手抜きです。)
#include <stdio.h>
int input(void) {
int number;
while (1) { # 無限ループ
printf("012\n");
printf("345\n");
printf("678\n");
printf("0-8の数字をいれてください。");
scanf("%d",&number); # 数字以外の文字をいれると暴走します。TT
if (number>=0 && number<=8) { # 数字チェック。
return number;
} else {
printf("入力が正しくありません。\n");
}
}
}
void main (void) {
int number;
number=input();
printf ("%d",number);
}