Computer-programming-decisions

提供:Dev Guides
移動先:案内検索

決定声明

意思決定は、コンピュータープログラミングにとって重要です。 2つ以上のオプションが与えられ、与えられた条件に基づいてオプションを選択する必要がある場合、多くの状況があります。 たとえば、保護されたマークに基づいて、学生に関するコメントを印刷したいとします。 以下は状況です-

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

さて、問題はそのような状況に対処するためのプログラミングコードの書き方です。 ほとんどすべてのプログラミング言語は、次のフロー図に基づいて機能する条件付きステートメントを提供します-

Cでの意思決定ステートメント

上記の特定の状況をプログラミングコードに変換するために、* if条件文*を使用してCプログラムを作成しましょう。

#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {

      printf( "Student is brilliant\n");
   }
   if( x < 30) {

      printf( "Student is poor\n");
   }
   if( x < 95 && x > 30 ) {

      printf( "Student is average\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

上記のプログラムは、* if条件ステートメント*を使用しています。 ここで、最初の* ifステートメント*は、指定された条件、つまり変数xが95より大きいかどうかをチェックし、条件がtrueであることがわかると、指定されたステートメントを実行するために条件本体が入力されます。 ここでは、学生に関するコメントを出力する_printf()_ステートメントが1つだけあります。

同様に、2番目の* ifステートメント*も機能します。 最後に、3番目の* ifステートメント*が実行されます。ここでは、次の2つの条件があります-

  • 最初の条件は x> 95 です
  • 2番目の条件は x <30

コンピューターは指定された条件の両方を評価し、全体の結果は2項演算子 && の助けを借りて結合されます。 最終結果が真の場合、条件ステートメントが実行されます。そうでない場合、ステートメントは実行されません。

このチュートリアルでは、さまざまな形式の* ifステートメント*の基本的な考え方と、Cプログラミング言語で使用できる switch ステートメントの概要を説明します。 異なるプログラミング言語は異なるタイプの意思決定ステートメントを提供しますが、基本的な概念はこのチュートリアルで説明したものと同じです。

if …​ elseステートメント

*if* ステートメントの後にオプションの *else* ステートメントを続けることができます。これは、ブール式がfalseの場合に実行されます。 Cプログラミング言語の *if ... else* ステートメントの構文は-
if(boolean_expression) {

  /*Statement(s) will execute if the boolean expression is true*/
} else {

 /*Statement(s) will execute if the boolean expression is false*/
}

上記の構文は、以下に示すようにフロー図の形で表すことができます-

C if …​ else statement

*if ... else* ステートメントは、2つのオプションから決定を下す必要がある場合に役立ちます。 たとえば、学生が95よりも多くのマークを確保する場合、学生は素晴らしいです、そうでなければ、そのような状況は次のようにコーディングすることはできません-
#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {

      printf( "Student is brilliant\n");
   } else {
      printf( "Student is not brilliant\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is not brilliant

if …​ elseif …​ elseステートメント

*if* ステートメントの後に、オプションの *else if ... else* ステートメントを続けることができます。これは、さまざまな条件をテストするのに非常に便利です。
*if、else if、else* ステートメントを使用している間、留意すべきいくつかのポイントがあります-
  • if にはゼロまたは1つの else’s を含めることができ、 else if の後に来る必要があります。
  • if は、0個以上の else…if’s を持つことができ、 else の前に来る必要があります。
  • else…if が成功すると、残りの else…if’s または else’s はテストされません。

Cプログラミング言語の if …​ else if …​ else ステートメントの構文は-

if(boolean_expression 1) {

  /*Executes when the boolean expression 1 is true*/
}
else if( boolean_expression 2) {

  /*Executes when the boolean expression 2 is true*/
}
else if( boolean_expression 3) {

  /*Executes when the boolean expression 3 is true*/
} else {

  /*Executes when the none of the above condition is true*/
}

if …​ elseif …​ else ステートメントの助けを借りて、非常に最初のプログラムは次のようにコーディングすることができます-

#include <stdio.h>

int main() {
   int x = 45;

   if( x > 95) {
      printf( "Student is brilliant\n");
   }
   else if( x < 30) {
      printf( "Student is poor\n");
   }
   else if( x < 95 && x > 30 ) {
      printf( "Student is average\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

Switchステートメント

*switch* ステートメントは、* ifステートメント*の代替であり、変数の値のリストとの等価性をテストできます。 各値は「*ケース*」と呼ばれ、オンになっている変数はスイッチケースごとにチェックされます。 次の構文があります-
switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......

   default :
      statement(s);
}
*switch* ステートメントで使用される *expression* は整数値を指定する必要があり、指定されたさまざまなケースと等しいかどうか比較されます。 式の値がケースの値と一致する場合はいつでも、そのケースの本体が実行され、最後に *break* ステートメントを使用してスイッチが終了します。 breakステートメントが提供されない場合、コンピューターは、一致したケースに対して以下で利用可能な他のステートメントの実行を続けます。 一致するケースがない場合、デフォルトのケース本体が実行されます。

上記の構文は、以下に示すようにフロー図の形で表すことができます-

Cのステートメントの切り替え

ここで、与えられた数字に相当する英語の単語を書きたい別の例を考えてみましょう。 次に、次のようにコーディングすることができます-

#include <stdio.h>

int main() {
   int x = 2;

   switch( x ){
      case 1 :
         printf( "One\n");
         break;
      case 2 :
         printf( "Two\n");
         break;
      case 3 :
         printf( "Three\n");
         break;
      case 4 :
         printf( "Four\n");
         break;
      default :
         printf( "None of the above...\n");
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Two

Javaでの決定

以下は、 ifif …​ elseif …​ elseif …​ else 、および switch ステートメントもサポートする、Javaで記述された同等のプログラムです。

次のプログラムを実行して出力を確認することができますが、出力は上記のCの例で生成された結果と同一である必要があります。

public class DemoJava {
   public static void main(String []args) {
      int x = 45;

      if( x > 95) {
         System.out.println( "Student is brilliant");
      }
      else if( x < 30) {
         System.out.println( "Student is poor");
      }
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

上記のプログラムが実行されると、次の結果が生成されます-

Student is average

Pythonでの決定

以下は、Pythonで作成された同等のプログラムです。 Pythonは、 ifif …​ elseif …​ elif …​ else 、および switch ステートメントを提供します。 ここで、Pythonは条件付きボディに中括弧を使用せず、ステートメントのインデントを使用してブロックのボディを単に識別することに注意する必要があります。

次のプログラムを実行して、出力を確認することができます-

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

上記のプログラムが実行されると、次の結果が生成されます-

Student is average
The end