C++条件判断

文章详细介绍了C++中条件判断的使用,包括ifelse语句的基本语法、单独if语句的示例、ifelse语句的逻辑以及如何简化if(else)语句。同时,讨论了if语句中的逻辑运算符(与、或、非)以及switch条件判断的使用,包括其基本语法和break关键字的作用。
摘要由CSDN通过智能技术生成

目录

if else 所用到的关系运算符

if else条件判断

单独的 if 语句

if else 语句

if (else) 语句的简化

if 中的 与,或,非

switch条件判断

基本语法

break

本帖用到的其他函数


if else 所用到的关系运算符

关系运算符

关系运算符所判断的内容
==是否相同
!=是否不同
>是否大于
<是否小于
>=是否大于等于
<=是否小于等于

        例如当左边的值为-1,右边的值为1时,从上到下一次判断为伪,真,伪,真,伪,真

if else条件判断

        if else是C++中最基本的条件判断语句,即当判断条件为真时执行一段语句,反之则执行另一端语句。

单独的 if 语句

#include<iostream>
using namespace std;
int main(){
    int s;
    cin>>s;
    if(s==0){
        cout<<"s=0";
    }
return 0;
}

        这是一段单独 if 语句的程序,用户先输入一个数,若这个数为0,则输出“s=0”if小括号里的内容是需要判断的条件,这里s==0就是“如果s的值为0”

        运行结果:

示例1

0
s=0

示例2

12

        可以看出当输入0时,程序执行了大括号里的命令;如果我们输入的不是0,就会直接return 0。表达式s==0也有自己的值,条件判断为真时就为1,条件判断为伪时为0。也就是说,if 的原理就是当小括号里为1时执行大括号里的语句。所以,刚才的代码等价于:

#include<iostream>
using namespace std;
int main(){
    int s;
    cin>>s;
    k=s==0;
    if(k){        //if(k==1)也可以
        cout<<"s=0";
    }
return 0;
}

if else 语句

        单独 if 语句可以在条件成立时执行命令,但大部分情况下,我们需要的不仅仅时“如果”,而是“如果   否则”if(x){a} 是当 x(成立)时执行 a,if(x){a}else{b} 是当 x(成立)时执行 a,否则执行 b。

#include<iostream>
using namespace std;
int main(){
    long a=0;
    cin>>a;
    if(a==0){
        cout<<"a=0";
    }
    else{
        cout<<"a not=0";
    }
    return 0;
}

        代码第6行判断a是否为0为0时执行 if 大括号里的语句,否则执行 else 大括号里的语句

        运行结果:

示例1

0
a=0

示例2

1
a not=0

if (else) 语句的简化

        1.省略大括号

        当要执行的语句只有一条时,可以省略大括号。例:

#include<stdio.h>
int main(){
    int m;
    scanf("%d",&m);
    if(m>1) printf("m>1");
    else printf("m<1 or m=1");
    return 0;
}

        2.更加简略的写法 

        这种写法和 if else 的逻辑相同,而且更加简便。

        格式:x?a:b

        x就是判断条件,a就是if语句,b就是else语句

        这种写法一般不用于执行if语句else语句较长的情况。可以认为这整个语句是在x为真时等价于a,x为伪时等价于b。

#include<iostream>
using namespace std;
int main(){
    int a,b;
    cin>>a>>b;
    cout<<a<b?a:b;    //取a,b中较小值
    return 0;
}

        (看着还挺舒服)

if 中的 与,或,非

        如果我们想要让两个条件都成立时才执行命令,可以这样做:

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a>=0) if(a<=6) cout<<"0<=a<=6";
    return 0;
}

        不过在只使用一个 if 的前提下也可以达到一样的效果 。这时就需要用到逻辑运算符

逻辑运算符

逻辑运算符所判断的内容
&&是否两个条件都成立
||两个条件是否至少有一个成立
这个条件是否不成立

        所以代码可以写成: 

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a>=0&&a<=6) cout<<"0<=a<=6";    //a大于等于0且a小于等于6
    return 0;
}

        或的示例

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a<=0||a>=6) cout<<"a<=0 or a>=6";    //a小于等于0或a大于等于6
    return 0;
}

        非的示例

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a!=0) cout<<"a is not zero.\n";    //a不等于0
    return 0;
}

        切记:在代码中没有像 0<a<6 这样的条件判断!

if else if else (嵌套结构)

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a>0){
        cout<<"a为正数";
    }
    else{
        if(a==0){
            cout<<"a为0";
        }
        else{
            cout<<"a为负数";
        }
    }
    return 0;
}

        这也就是 if 里面还有 if ,逻辑大家应该都清楚。可以简化一下

#include<iostream>
using namespace std;
int main(){
    int a;
    cin>>a;
    if(a>0) cout<<"a为正数";
    else if(a==0) cout<<"a为0";
    else cout<<"a为负数";
    return 0;
}

switch条件判断

基本语法

        if else 语句嵌套多了就会感到很烦,这个时候我们就可以用switch语句。

#include<iostream>
int main(){
    cout<<"Input 1 or 2 or 3.\n";
    int k;
    cin>>k;
    switch(k){
        case 1:cout<<1;break;    //如果k==1
        case 2:cout<<2;break;    //如果k==2
        case 3:cout<<3;break;    //如果k==3
        default:cout<<"not 1 or 2 or 3!";    //如果k不是1,2,3
    }
    cout<<endl;
    return 0;
}
//switch 关键词 break

        switch可以依次让括号中的变量和下面的case比较但switch有一个缺点,只能比较整形。在比较的过程中,发现一个与变量值匹配的case就执行对应的语句,若遇到关键词break,就跳出整个switch语句

        若没有对应的值,就执行default中的代码。

        结果示例:

1
1

break

        当case中出现break时,会直接跳出整个switch语句但当case执行完却仍然没有break,就会一直执行直到出现break,如果整个switch中都没有break,那么将会从匹配的case开始,一直执行到default


#include<iostream>
int main(){
    cout<<"Input 1 or 2 or 3.\n";
    int k;
    cin>>k;
    switch(k){
        case 1:cout<<1;    //如果k==1
        case 2:cout<<2;    //如果k==2
        case 3:cout<<3;    //如果k==3
        default:cout<<"not 1 or 2 or 3!";
    }
    cout<<endl;
    return 0;
}
//switch 关键词 break

结果示例:

1
123not 1 or 2 or 3!

#include<iostream>
int main(){
    cout<<"Input 1 or 2 or 3.\n";
    int k;
    cin>>k;
    switch(k){
        case 1:cout<<1;    //如果k==1
        case 2:cout<<2;    //如果k==2
        case 3:cout<<3;break;    //如果k==3
        default:cout<<"not 1 or 2 or 3!";
    }
    cout<<endl;
    return 0;
}
//switch 关键词 break

结果示例:

1
123

本帖用到的其他函数

        cout,cin,printf,scanf

        可以详见我之前的文章:

(2条消息) C++的输入输出_simonsthreebody的博客-CSDN博客https://blog.csdn.net/m0_71202473/article/details/130455302

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值