(四)C语言教程&if 判断与逻辑运算符

(四)C语言教程&if 判断与逻辑运算符

今天我们来讲点关于if的事

if,都知道,”如果”的意思,C语言中也是这个意思,后面接着需要满足的条件,条件需要打上括号,满足条件后做的事情要打上大括号

给个小例子,求出两个数之间最大的数:

include

int main(){ 

    int a,b,max;                                       //max用来存储最大的数字 

    printf(“请输入两个数字:”); 

    scanf(“%d%d”,&a,&b); 

    if(a>=b){                                            //如果a大于b 

        max=a;                                          //则最大的数是a 

    } if(b>a){ 

        max=b; 

    } 

    printf(“最大的数为:%d\n”,max);       //把max输出

    return 0; 

测试结果如下:

Press any key to continue的意思就是按任意键继续,是方便人们观察加上的
其实如果当 if 里语句只有一条语句时是不用大括号的,但是还是建议写上

就像这样: 

if (a>=b)

    max=a

虽然上面的程序求出了两个数中最大的数字,但是,还有一个东西叫 else ,它是与 if 连着用的,意思就是如果不满足上面所以的 if 条件,那么就执行 else 里的语句( 同样打上大括号 )

所以上面的例子,我们可以改成这样:

include

int main(){ 

    int a,b,max; 

    printf(“请输入两个数字:”); 

    scanf(“%d%d”,&a,&b);

    if(a>=b) 

        max=a; 

    else                               //每一个else后面都不加条件 

        max=b; 

    printf(“最大的数为:%d\n”,max); 

    return 0; 

}

OK,我们了解 else 了,但是我们还可以优化一下,达到同样的效果

我们可以去掉变量max,直接输出 a 或 b,因为 if 和 else 里只能执行一个

include

int main(){ 

    int a,b; 

    printf(“请输入两个数字:”); 

    scanf(“%d%d”,&a,&b); 

    if(a>=b) 

        printf(“最大的数为:%d\n”,a);            //直接输出

    else 

        printf(“最大的数为:%d\n”,b); 

    return 0; 

}

那问题来了,如果我们有很多条件需要判断呢?

虽然拿 if 可以写,但是比较麻烦

这时,else if( ) 就登场了,它与 else 不同的就是它后面可以加条件,就是不满足上面的条件,但满足括号里的条件就执行大括号里的命令

给个例子,让用户输入分数,0-60为不及格,61-70为及格,71-80为中等,81-90为良好,91-100为优秀

源码如下:

include

int main(){

    int score; 

    printf(“请输入分数:”); 

    scanf(“%d”,&score); 

    printf(“你的档次是:”); 

    if(score>=91) 

        printf(“优秀”); 

    else if(score>=81) 

        printf(“良好”); 

    else if(score>=71)

        printf(“中等”); 

    else if(score>=61) 

        printf(“及格”); 

    else 

        printf(“不及格”); 

    printf(“\n”); 

    return 0; 

}

这样写条理会比较清晰一点,但是如果要是求三个数的最大数,还是非常的麻烦

这时就会用到我们的逻辑运算符:&&,|| 与!

先说一下比较专业的解释,可以适当咀嚼一下:

“&&”含义为两个条件同时为真则结果为真,否则结果为假

” || “含义为两个条件同时为假则结果为假,否则结果为真

” ! “意为取反

常规介绍:

“&&”其实就是两边条件都满足时才执行 if 里的东西

” || “就是如果两边条件有一个符号,那就执行 if 里的语句

” ! “就是如果不符合这个条件,就执行

” || ” 的例子不太好找,如果知道好例子的就在评论区里说一声,谢谢可爱的小伙伴呀

举一个”&&”的例子吧( 求三个数中的最大数 ):

include

int main() {

    int a,b,c;

    printf(“请输入三个数字:”);

    scanf(“%d%d%d”,&a,&b,&c);

    printf(“最大的数字是:”);

    if(a>=b&&a>=c) //如果a大于b,且a大于c时

        printf(“%d”,a); 

    else if(b>=a&&b>=c)

        printf(“%d”,b); 

    else

        printf(“%d”,c);

    printf(“\n”);

    return 0;

}

代码也不长,完成了我们期望的主要任务

下面再举一个” ! “的例子(输入非零数字):

include

int main() {

    int a;

    printf(“请输入一个非零数字:”);

    scanf(“%d”,&a);

    if(a!=0)                                             //一般!=意为不等于

        printf(“您输入的是非零数字”); 

    else

        printf(“您输入的是0,请重试”);

    printf(“\n”);

    return 0;

}

结合这些例子,在看看上面的知识点,就基本可以理解了

在说最后一点,”等于”的表达在C语言里可不是=

“=”为赋值符号,是把”=”右边的值赋给左边的变量

比如:a = 5 ; 这句话是将 5 赋值于 a,不要读 a 等于 5

那等于呢?等于是这个:”==”,两个等于号,经常用在 if 里

比如上面的非零数字可以改写一下,改写为这样:

include

int main() {

    int a;

    printf(“请输入一个非零数字:”);

    scanf(“%d”,&a);

    if(a==0)                               //如果a为0时

        printf(“您输入的是0,请重试”); 

    else

        printf(“您输入的是非零数字”);

    printf(“\n”);

    return 0;

}

结果一样,但是一般我们会用到!这个符号,为了装个B

等于与赋值一定要区别开,这令很多新手烦恼,他们会弄不懂这样的式子:

x = x + 1 ;

这其实就是把 x 加上1,然后赋值给 x 的操作,结果就是 x 比原来大了1

新手一定要理解透彻!!!否则以后会吃大亏的!

行了,今天的课也差不多了,总结一下:

if一般语法:
if ( 条件 ){
执行语句 ;
}

if – else一般语法:
if ( 条件 ){
执行语句 ;
}
else{
执行语句 ;
}

if – else if – else一般语法:
if ( 条件 ){
执行语句 ;

}else if ( 条件 ){

执行语句 ;

}else{

执行语句 ;

}

&&表示且,||表示或,!表示非

==为等于,=为赋值

OK,今天的讲解就到这里了

如果觉得讲的不错的话,点个赞,三个连吧

希望大家喜欢

下面给出上一章题的答案:

源码如下:

include

int main() {

    int a,b;

    printf(“请输入长方形的长宽:”);

    scanf(“%d%d”,&a,&b);

    printf(“长方形的周长是:%d,面积是:%d\n”,2a+2b,a*b);

    return 0;

}

当然,今天也有题哦:

要求用户输入自己的年龄( age )和分数( score )
当年龄大于18且分数高于60时,输出”你可以使用该软件”
当年龄大于18但分数低于60时,输出”你的分数太低了”
当分数高于60但年龄不满18时,输出”你太小了,不能使用”
其他( 年龄为负数或100以上,分数为负数或100以上 ),输出”输入有误”

发表评论