ベストアンサー
プログラミング言語によって異なります。私のお気に入りの平易な英語は、最小限ですが実用的な言語で、次の5種類のステートメントしかありません。
•タイプ定義。常にA、AN、またはSOMEで始まります。 •グローバル変数の定義。常にTHEで始まります。 •ルーチンヘッダー。常にTOで始まります。 •条件文。常にIFで始まります。および•他のもので始まる命令文。
別の見方をすると、次のようになります。
プログラムは、簡単に言えば、次の3つで構成されます。
•メモリ内で何かが占めるバイト数をコンパイラ/インタプリタに通知する型。
•メモリ内のさまざまな型の実際のインスタンスである変数。および
•メモリ内の変数を作成、操作、および最終的に破棄するルーチン(関数、メソッド、またはアルゴリズムと呼ばれることが多い)
ただし、プログラムの作成では通常、他に3つのものが使用されます。
•プログラムを記述およびテストできる開発環境;
•プログラミング言語;および
•すべてを最初から作成する代わりに使用できる、事前定義された型、変数、およびルーチンの標準ライブラリ。
これは、プレーンイングリッシュ開発環境で表示されるプレーンイングリッシュプログラミング言語を使用した例です(クリックして拡大):
開発環境には、デスクトップインターフェイス、アルファベット順のメニュー、コードの編集に使用されるテキストエディター、および変換するコンパイラが含まれます。ソースコードを実行可能コードに変換します。
プログラミング言語には、ステートメント(黒)とコメント(青)の両方が含まれています。ほとんどのプログラミング言語は、より数学的な構文を持ち、読み取りと書き込みが困難です。
事前定義された型、変数、およびの標準ライブラリこのシステムでは、ルーチンは「ヌードル」と呼ばれ、画面下部の左から2番目のタブで開かれています。 「名前」や「フォント」などのタイプ、「画面」や「緑のペン」などの変数、「名前とサイズをフォントに入れる」や「ボックスの中央に文字列を描画する」などのルーチンペンとフォント」はヌードルで定義されています。
実行コマンドが実行されると(Rメニューの下にあります)、平易な英語のコードが実行可能なWindowsプログラムにコンパイルされ、プログラムが起動します。 。その(重要な)プロセスをここに示します…
…そして画面上の結果は次のようになります:
プレーン英語プログラミングの詳細については、こちらをご覧ください:
平易な英語プログラマーのオスモシアンオーダーがあなたを歓迎します
Et voila!
回答
制御ステートメントを使用すると、プログラム制御のフローを指定できます。つまり、プログラム内の命令を実行する必要がある順序。これらにより、意思決定、タスクの繰り返し実行、またはコードのあるセクションから別のセクションへのジャンプが可能になります。
Cには4種類の制御ステートメントがあります:
- 意思決定ステートメント
- 選択ステートメント
- 反復ステートメント
- ジャンプステートメント
意思決定ステートメント:if-elseステートメント
if-elseステートメントは、論理テストを実行し、結果に応じて2つの可能なアクションのいずれかを実行するために使用されます。テスト(つまり、結果が真か偽か)。
構文:
if (condition)
{
statements
}
else
{
statements
}
条件がifステートメントで指定されたステートメントはtrueと評価されますif-block内で実行された後、制御はif-blockの直後のステートメントに転送されます。条件がfalseで、else-blockが存在しない場合でも、制御はif-blockの直後にステートメントに移されます。
else部分は、特定の一連の命令を実行する必要がある場合にのみ必要です。条件がfalseと評価された場合。条件は常に括弧で指定され、単一ステートメントであろうと複合ステートメントであろうと、ステートメントをifブロックまたはelseブロックで囲むことをお勧めします。
次のプログラムは、入力された数値が正か負かをチェックします。
#include
int main( )
{
int a;
printf("n Enter a number:");
scanf("\%d", &a);
if(a>0)
{
printf( "n The number \%d is positive.",a);
}
else
{
printf("n The number \%d is negative.",a);
}
return 0;
}
次のプログラムは、2つの文字列を比較して、それらが等しいかどうかを確認します。
#include
#include
int main( )
{
char a[20] , b[20];
printf("n Enter the first string:");
scanf("\%s",a);
printf("n Enter the second string:");
scanf("\%s",b);
if((strcmp(a,b)==0))
{
printf("nStrings are the same");
}
else
{
printf("nStrings are different");
}
return 0;
}
上記のプログラムは、2つの文字列を比較して、それらが同じかどうかを確認します。 strcmp
関数はこの目的で使用されます。 string.h
ファイルで次のように宣言されています。
int strcmp(const char *s1, const char *s2);
文字列を比較しますs1
が指す文字列からs2
が指す文字列。 strcmp
関数は、s1
が指す文字列がより大きいため、ゼロより大きい、等しい、または小さい整数を返します。 、s2
が指す文字列以下。
したがって、上記のプログラムでは、2つの文字列がa
とb
が等しい場合、strcmp
関数は0を返す必要があります。0を返す場合、文字列は同じです。 ;それ以外の場合は異なります。
ネストされたifおよびif-elseステートメント
ネストされたif-elseステートメントの一般的な形式は次のとおりです。
if(condition1)
{
// statement(s);
}
else if(condition2)
{
//statement(s);
}
.
.
.
.
else if (conditionN)
{
//statement(s);
}
else
{
//statement(s);
}
上記は if-elseラダーとも呼ばれます。ネストされたif-elseステートメントの実行中に、trueと評価される条件が発生するとすぐに、その特定のif-blockに関連付けられたステートメントが実行され、ネストされたif-elseステートメントの残りがバイパスされます。どちらの条件も真でない場合、最後のelse-blockが実行されるか、else-blockが存在しない場合、制御はelse-ifラダーの直後にある次の命令に移されます。
次のプログラムは、ネストされたif-elseステートメントを使用して、3つの数値のうち最大のものを検索します。
#include
int main( )
{
int a, b,c;
a=6,b= 5, c=10;
if(a>b)
{
if(b>c)
{
printf("nGreatest is: " , a);
}
else if(c>a)
{
printf("nGreatest is: ", c);
}
}
else if(b>c) //outermost if-else block
{
printf("nGreatest is: " , b);
}
else
{
printf( "nGreatest is: " , c);
}
return 0;
}
上記のプログラムは、3つの整数量を比較し、最大のものを出力します。最初のifステートメントは、a
とb
の値を比較します。 a>b
がtrueの場合、プログラム制御はifブロック内にネストされたif-elseステートメントに転送され、b
が
。 b>c
もtrueの場合、 a
の値が出力されます。それ以外の場合は、c
とa
の値が比較され、c>a
がtrueの場合は値c
のが出力されます。この後、if-elseラダーの残りの部分はバイパスされます。
ただし、最初の条件a>b
がfalseの場合、制御は他の最も外側に直接転送されます。 -ブロックの場合、b
の値が c
と比較されます(a
は最大ではありません)。 b>c
がtrueの場合、b
の値が出力されます。それ以外の場合、c
の値が出力されます。 。入れ子、中括弧の使用、およびインデントに注意してください。明確さを維持するために、これはすべて必要です。
選択ステートメント:switch-caseステートメント
switchステートメントは変数または式の値に基づいて異なるコードセグメントに分岐する複数の方法の選択に使用されます。この式または変数は整数データ型である必要があります。
構文:
switch (expression)
{
case value1:
code segment1;
break;
case value2:
code segment2;
break;
.
.
.
case valueN:
code segmentN;
break;
default:
default code segment;
}
この式の値は、プログラムの実行中に生成されるか、ユーザー入力として読み込まれます。 式と同じ値のケースを選択して実行します。オプションの default ラベルは、式の値がどのケース値とも一致しない場合に実行されるコードセグメントを指定するために使用されます。
break
ステートメントはすべてのケースの最後にあります。そうでない場合、実行は、ケース値をチェックすることなく、次のケースのコードセグメントに進みます。たとえば、switch
ステートメントに5つのケースがあり、3番目のケースの値が式の値と一致するとします。 3番目のケースの最後にbreakステートメントが存在しない場合、ケース3以降のすべてのケースもケース3とともに実行されます。breakが存在する場合、必要なケースのみが選択されて実行されます。その後、制御はswitchステートメントの直後の次のステートメントに移されます。 default
の後にbreak
はありません。これは、デフォルトの場合の後、コントロールが切り替え直後に次のステートメントに転送されるためです。
例:曜日を印刷するプログラム。
#include
int main( )
{
int day;
printf("nEnter the number of the day:");
scanf("\%d",&day);
switch(day)
{
case 1:
printf("Sunday");
break;
case 2:
printf("Monday");
break;
case 3:
printf("Tuesday");
break;
case 4:
printf("Wednesday");
break;
case 5:
break;
case 6:
printf("Friday");
break;
case 7:
printf("Saturday");
break;
default:
printf("Invalid choice");
}
return 0;
}
これは非常に基本的なことですスイッチケース構造の動作を説明するプログラム。ユーザーが入力した番号に応じて、適切なケースが選択されて実行されます。たとえば、ユーザー入力が5の場合、ケース5が実行されます。ケース5に存在するbreak
ステートメントは、ケース5の後にswitchステートメントの実行を一時停止し、制御は切り替え後の次のステートメントに移されます。これは次のとおりです。
return 0;
switchステートメントのケース内に複合ステートメントを埋め込むこともできます。これらの複合ステートメントには、制御構造が含まれる場合があります。したがって、ケース内に埋め込むことでネストされたスイッチを作成することもできます。
switch-caseステートメントを使用して記述されたすべてのプログラムは、if-elseステートメントを使用して記述できます。ただし、リレーショナル式と論理式の組み合わせを含む可能性のある単純または複雑な条件を評価した後に何らかのアクションを実行する必要がある場合は、ifステートメントを使用することはプログラミング上意味があります(例:(if((a!=0)&&(b>5))
)。
大きな値のグループから選択する必要がある場合、switchステートメントはネストされたifのセットよりもはるかに高速に実行されます。このスイッチは、ifとは異なり、そのスイッチは同等性のみをテストできますが、ifは任意のタイプのブール式を評価できます。
特定のセットから選択する必要がある場合は、switchステートメントを使用する必要があります。選択肢。 switch caseステートメントは、通常、メニューベースのアプリケーションで使用されます。 switch-caseステートメントの最も一般的な使用法は、データ処理またはファイル処理です。ファイル処理のほとんどには、ファイルの作成、レコードの追加、レコードの削除、レコードの更新、ファイル全体または一部の選択レコードの印刷などの一般的な機能が含まれます。次のプログラムは、switchcaseステートメントをデータ処理で使用する方法を示しています。ポインタ、構造体、共用体などの高度な概念を学習した後でのみCでのファイル処理について説明できるため、ファイル処理のコードは含まれません。
例:データファイル処理で使用されるswitchcaseステートメント。
#include
int main()
{ //create file &set file pointer .
int choice;
printf("n Please select from the following options:");
printf("n 1. Add a record at the end of the file.");
printf("n 2. Add a record at the beginning of the file:");
printf("n 3. Add a record after a particular record:";
printf("nPlease enter your choice:(1/2/3)?");
scanf("\%d",&choice);
switch(choice)
{
case 1:
//code to add record at the end of the file
break;
case 2:
//code to add record at the beginning of the file
break;
case 3:
//code to add record after a particular record
break;
default:
printf("n Wrong Choice");
}
return 0;
}
ありがとうございます。