C-流程控制(1)

一、选择结构

        1.if语句:用来实现两个分支的选择结构

                         if语句的形式:

if(表达式) 语句1

else 语句2

        if语句最常见的三种形式

        (1)        if(表达式)        语句1        (没有else部分)

        (2)        if(表达式)

                         语句1

                     else

                         语句2

        (3)        if(表达式1)        语句1        (在else部分嵌套了多层的if语句)

                        else if(表达式2)        语句2

                        else if(表达式3)        语句3

                               ...                        ...

                        else

                例:计算 ax^2 + bx + c = 0 的方程的根。

                 流程图

                

#include<stdio.h>
#include<math.h>//调用math方法 
int main()
{
//if语句(实现两个分支的选择结构) 
        //计算ax^2 + bx + c = 0的方程的根。 
double a,b,c, disc,x1,x2,p,q;//disc是 sqrt(b**2-4ac)
printf("输出参数:\n");
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b*2-4*a*c; 
        //幂函数pow()printf("%f",pow(3,2));
if(disc < 0){
    printf("方程无实数根");    //b^2-4ac<0无实数根 
}
else{
    p = -b/(2.0*a);
    q=sqrt(disc)/(2.0*a);//sqrt()函数平方根函数(非负实数) 
    x1=p+q;
    x2=p-q;
    printf("方程的两个根为:x1:%7.2f\t x2:%7.2f \n",x1,x2);
}
    return 0;
}

         2.switch语句:进行选择判断,switch(开关语句)常和case break default一起使用。

                            switch语句的形式:

        switch(表达式)

        {

        case 常量 1 : 语句 1

        case 常量 2 : 语句 2

        ...                ...

        case 常量 n : 语句 n

        default :         语句 n + 1

        }

注:        (1)        switch后面( )里面的表达式,值的类型应为整数类型(包括字符型)。

             (2)        可以没有 default 标号,如果此时没有与switch表达式相匹配的case常量,则不执行任何语句,流程转到switch语句的下一个语句。

             (3)        每一个case标号出现的次序互不影响,不影响执行结果,也可以先出现default再出现case...。

             (4)        每一个case常量必须互不相同,否则会出现相互矛盾(switch会执行多种执行方案)。

             (5)        执行一个case句子后,应当用break语句使其循环跳出switch结构,即终止switch语句,最后一个case句子不必break语句。

                                switch语句的基本结构: 

switch(变量或者表达式)

{

         case         变量情况或者表达式情况1 : 语句1 ; break;

         case         变量情况或者表达式情况2 : 语句2 ; break;

         case         变量情况或者表达式情况3 : 语句3 ; break;

        ……

        default :  语句;        //default情况就是指,除了你写的case的情况外的情况

}

注:一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。

                 例题:百分制成绩,要求输出成绩的等级ABCDE;由于case里面,只能是常量,switch里面放置表达式是得到分数的十位数字。

#include<stdio.h>

int main(){
    //swith语句(用来实现多分支条件的选择结构)
        int score,i=3;//此时score= 1,i=3,进行三次成绩判断 
        while(i--){
            scanf("%d",&score);
            if(score>100||score<0){
                printf("输入错误!重新输入!\n");
                scanf("%d",&score);
                }
            switch(score/10){// score/10取整 
                case(9):printf("A\n");break;
                case(8):printf("B\n");break;
                case(7):printf("C\n");break;
                case(6):printf("D\n");break;
                        //其它                           
                default:printf("E\n");break;
                }
    }
        return 0;
}

二、运算符

        1.关系运算符:用关系运算符将两个数值或数值表达式连接起来的式子。

                (1)        优先级相同(高)        <、<=、>、>=

                (2)        优先级相同(低)        ==、!=

        2.逻辑运算符(&&、||、!)

运符符含义例子                     解释
     &&逻辑与a&&b如果a、b都为真,则结果为真,否则为假
     ||逻辑或a||b若果a、b有一个为真,则结果为真,二者都为假,结果则为假
     !逻辑非!a如果a为假,则!a为真,如果a为真,则!a为假

 //逻辑运算符        c语言中所有非零数为真,0为假

                                  //1.逻辑与        &&        真真为真,一假则假

                                  int a = 10;

                                  int b = 9;

                                  printf("%d\n",a<b&&a>b);        //        0        假

                                  printf("%d\n",a>b&&4<b);        //        1        真

                                   //2.逻辑或        ||        一真则真,假假为假                                                                                printf("%d\n",a<b||a>b);          //        1        真                                   printf("%d\n",a<b||11<b);        //        0        假

                                   //3.逻辑非       a为真,则!a为假;a为假,则!a为真

                                  printf("%d\n",!(a>b));        //        0        假

                                  printf("%d",!(a<b));           //        1        真

      3.条件运算符(?) : 由 (? 和 : )组成,必须一起使用

                条件表达式 : 表达式1 ? 表达式2 : 表达式3

         4.选择结构的嵌套

                if语句的嵌套:if语句包含一个或者多个if语句

                        形式:

 注意:if与else的配对关系:else总是与它上面的最近的未配对的if配对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值