一.if语句

1.单分支结构

 格式1:   if(<表达式>)语句1; //语句1,

      说明:只一条语句。 如果表达式为真, 执行语句1; 否则什么都不做;

     格式2: if(<表达式>)

         {

          语句块1;

        }

  2. 双分支结构 if… else语句  

      格式: if (<表达式>)

          语句1;

        else

          语句2;

      说明: 如果表达式为真, 执行语句1; 否则执行语句2

          else子句是if语句的一部分,它不能作为语句单独使用, 必须与if配对使用。

 

  3.多分支结构 if … else if 语句

格式:

        if()

        {

          语句块1;

        }  

        else if()

        {

          语句块2;

        }

        …

是不能跟条件的 

        {

          语句块n;

        } 

 

      

      格式说明

        1.表达式一般为逻辑表达式或关系表达式, 也可以是任意的数值类型。

        2.else子句不能脱离if子句而存在, 下面写法是错误的。

 

  4.if语句的嵌套

      else与if必须成对出现,  且else总是与最近的一个未配对的 if 配对

                         

else语句运用 if java if else if语句格式例子_#include

      如果 if与else的数目不同, 为实现指定的操作, 可以加花括号来确定配对关系。

                         

else语句运用 if java if else if语句格式例子_运算符_02

      内层的选择结构必须完整地嵌套在外层的选择结构内, 两者不允许交叉。

                                    

else语句运用 if java if else if语句格式例子_分支结构_03

 

      书写选择结构时:

          缩进  使程序层次分明

          花括号{}  逻辑明确 代码易读、

      例如  判断输入的字符是数字还是字母 

      

#include <stdio.h>
        void main()
        {
	          char a=0;
	          printf("请输入一个字符\n");
	          scanf("%c",&a);

          if (a>='0' && a<='9')
	          {
		            printf("你输入的是数字%c",a);
	          }	          else if(( a>='A'&&a<='Z')||(a>='a'&&a<='z'))
	          {
		            printf("你输入的是字母%c",a);
	          }	          else
	          {
		            printf("你输入的是其他字符");
	          }        }

  5.switch语句

多选一,同多分支类似  但是可读性比多分支强

    格式: switch(表达式)

      {

      case 常量表达式1: 语句组1;

        break;

      case 常量表达式2: 语句组2;

        break;

        ……

      case 常量表达式n: 语句组n;

        break;

       default 语句n+1;

      }

    说明:各个case包括(default)的出现次序可以任意。在每个case分支都带有break的情况下, case次序不影响执行结果。

        不能用浮点型是因为 浮点数不可以用来精确比较

    例如  写一个计算器的程序  方法一

   

#include <stdio.h>
        #include <stdlib.h>
        #include <math.h>
        /加
        double  get_sum( double num1, double num2)
        {
	          return num1+num2;
        } 
        //减
        double  get_sub( double num1, double num2)
        {
	          return num1-num2;
        }        //乘
        double  get_mul( double num1, double num2)
        {
	          return num1*num2;
        }        //除
        double  get_div( double num1, double num2)
        {
	          if (num2==0)
	          {
		            printf("语法错误");
		            exit(0);
	          }
	          else
	          {
		            return num1/num2;
	          }        }
        //幂
        int  get_aaa( int num1, int num2)
        {	          return pow(num1,num2);
        }
          //取余
        int  get_xxx( int num1, int num2)
        {
	          return num1%num2;
        }
        void main()
        {
	          float num1=0;
	          float num2=0;
	          char ch=0;
	          double m=0;
	          double n=0;
	          scanf("%f%c%f",&num1,&ch,&num2);
	          switch (ch)
	          {
		            case '+': m=get_sum(num1,num2);
		            break;
		            case '-': m=get_sub(num1,num2);
		            break;
		            case '*': m=get_mul(num1,num2);
		            break;
		            case '/': m=get_div(num1,num2);
		            break;
		            case '%': m=get_xxx(num1,num2);
		            break;
		            case '$': m=get_aaa(num1,num2);
		            break;
		            default : printf("输入运算符错误");
	          }
	            printf("num1%cnum2=%.2lf",ch ,m);
        }        //写一个计算器程序  方法二
          #include <stdio.h>
          #include <stdlib.h>
          #include <math.h>
          void main()
          {
	            float num1=0;
	            float num2=0;
	            char ch=0;
	            double m=0;
	            double n=0;
	            int flag=0;
	            int x=0;
	            int y=0;
	            while(1)
	            {
		              printf("请输入要计算的运算符\n");
		              scanf("%f%c%f",&num1,&ch,&num2);
		              switch (ch)
		              {
			                case '+': m=num1+num2;
			                break;
			                case '-': m=num1-num2;
			                break;
			                case '*': m=num1*num2;
			                break;
			                case '/': x==0?(flag=1):(m=num1/num2);
			                break;
			                case '%': flag=2;
			                break;
			                case '$': y==0?(flag=3):(m=pow(num1,num2));
			                break;
			                default : flag=4;
		              }
		              switch (flag)
		              {
			                case '1': printf("除数不能为0\n");
			                break;
			                case '2': printf("取余不能是小数\n");
			                break;
			                case '3': printf("底数不能为0\n");
			                break;
			                case '4': printf("运算符错误\n");
			                break;
			                default: printf("num1%cnum2=%.2lf\n",ch ,m);
		                }
	              }

            }