これまでに合計5つのCプログラミングチュートリアルを取り上げました。各チュートリアルは、特定の何かに焦点を当てました。トピックに近いままでいる過程で、いくつかの一般的な概念は手つかずのままでした。このチュートリアルでここで説明する概念のいくつか。
それでは始めましょう。
コードは常に適切にインデントする必要があります。手始めに、インデントは、コードを読みやすくするためにスペース/タブ/改行を配置する方法です。通常、ブロックまたはループに関連付けられたコード行は同じギャップに配置されます。たとえば、インデントされていないコードは次のとおりです。
#include <stdio.h>
int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("The input contains %d lines", counter+1);
return 0;
}
そして、インデントが適用された同じコードがあります:
#include <stdio.h>
int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("The input contains %d lines", counter+1);
return 0;
}
ご覧のとおり、インデントされたコードは整理されており、読みやすく、確認しやすいように見えます。
以前のチュートリアルでお気づきかもしれませんが、変数をインクリメントするために次の方法を使用しました:
a = a+1;
この方法に問題はありませんが、人気があり、よく使用される別の方法があります。インクリメント演算子を使用することです。
a++
この方法を使用すると、「a」の値は1ずつ増加します。これはポストインクリメントであることに注意してください。プレインクリメント演算子もあります:
++a
2つの違いはポストインクリメントにあり、変数が最初に使用され、次にインクリメントの場合はその値が使用されます。一方、pre-incrementでは、最初に値が増加し、次に変数が使用されます。
次のコードは、違いをよりよく説明します。
#include <stdio.h>
int main (void)
{
int a =0, b=0;
printf("a = %d", a++);
printf("\n b = %d", ++b);
return 0;
}
このプログラムの出力は次のとおりです。
a = 0
b = 1
したがって、ポストインクリメントはすぐには反映されませんでしたが、プレインクリメントは反映されたことがわかります。
同じロジックがデクリメント演算子にも適用されます。
#include <stdio.h>
int main (void)
{
int a =1, b=1;
printf("a = %d", a--);
printf("\n b = %d", --b);
return 0;
}
出力は次のとおりです。
a = 1
b = 0
Cでコードにコメントを付ける方法は2つあります。1つは「//」を使用する方法です。このように、一度にコメントできるのは1行だけです。
// int a = 10;
// a = 9;
もう1つの方法は、/ * ....*/を線の周りに配置することです。これにより、一度に複数の行にコメントを付けることができます。
/* int a = 10;
a = 9; */
これまでは、whileループについてのみ触れてきました。このループでは、条件が真の場合にのみ、コードの実行がwhileブロックに入ります。
while(condition)
{
/*
line of code
line of code
...
*/
}
また、コードのブロックが最初に1回実行され、次にwhile条件がチェックされるdo-whileループも存在します。
do
{
// few lines of code
} while (condition);
さて、問題はいつdo-whileを使うべきかということです。例を挙げましょう。ユーザーに10より大きい値を入力してもらい、プログラムが値を取得するまでそのような値を入力するようユーザーに求め続ける必要があるとします。次に、その場合にdo-whileループがどのように役立つかを示します。
do
{
printf("Please enter a number greater than 10: ");
scanf("%d", &n);
}while(n<=10);
次は「for」ループです。これは「while」のようにチェックする条件がありますが、多くの場合に役立つインクリメントステートメントまたはデクリメントステートメントもあります。
for(initialization; condition; increment/decrement)
{
// lines of code here
}
これは、0から20までのすべての偶数を出力するサンプルコードです。
#include <stdio.h>
int main()
{
int i;
for(i=0;i<=20;i=i+2)
printf(" %d ", i);
return 0;
}
もちろん、「for」ループに関連するヒントやコツはたくさんありますが、今後のチュートリアルでゆっくりと着実に説明します。
ここで、このチュートリアルでは、いくつかの優れたヒントと新しい概念を学びました。今後のチュートリアルでこれらを拡張していきます。それまでは、今日ここで説明したことをすべて練習し、疑問や質問がある場合はコメントを投稿してください。