Macintosh (OS 10.15 Catalina)でC言語をプログラミングする方法を解説していきます。
この記事の対象者
前回は条件分岐処理の if 文を解説しました。今回はユーザーに値を入力させる処理と、初歩的なループ処理(繰り返し処理)について解説していきます。
前回の記事はこちら↓
scanf
プログラム実行中にユーザーの入力を待ち受け、入力された内容を受け取る関数です。
scanf("%型", &変数);
書き方は上のようになっており、"型"には「数値型」、「文字型」なのかといった指定をします。入力された内容(値)が"変数"に格納されます。
例えばこのような感じです。
この場合、"number"という変数に、入力内容を数値型として受け取る、という書き方です。型のところは"%d"となっており、こういった指定の仕方を「フォーマット指定子」などと呼ばれます。
フォーマット指定子は printf などの出力でもよく使うもので、例えば scanf で入力された値を出力させる場合はこのように書きます。
よく使うフォーマット指定子を紹介しておきます。
指定子 | 対応する型 |
---|---|
%d | int, short |
%f | float |
%lf= | double |
%ld= | long |
%c | char |
%s | char * |
for
代表的なループ処理です。ループを続ける条件を書いて、それが偽になった時(条件を満たさなくなった時)にループを抜けて次の処理に行きます。
for (ループ条件) { 処理 }
ループ条件のところは色々な書き方がありますが、例えばよくやる書き方だとこんな感じです。
整数型(int)で "i" という変数を定義し、最初に 1 を入れてます。
真ん中の "i <= 10"の部分は、「 i が10以下の場合にループ内の処理を行うよ」という意味です。
そして最後の "i++" の部分はインクリメントと呼ばれる方法で、i をプラス 1 しています。つまり、"i = i + 1"と書いているのと同じ意味です。
要約すると、このfor文は1〜10まで処理を繰り返すループということになります。
例えば以下のようなコードを書くと、
{
printf("i の値は、%d です。\r\n", i);
}
実行結果はこのようになります。
i が 1 ずつ足されていることがわかりますね。処理には四則演算も使えるので、i を使って色々試してみると面白いかもしれません。
因みに、例では i でループしてますが、変数なので i でなくとも何でも大丈夫です!
今回使ったコードを貼っておくので、よければこれをベースに色々試してみてください。
{
int number;
printf("すきな数字を入力してください;");
scanf("%d", &number);
printf("入力された数字は%dです。\r\n", number);
for (int i = 1; i<=number; i++)
{
printf("i の値は、%d です。\r\n", i);
}
return 0;
}
続きはこちら