C++青少年简明教程:If选择语句

C++青少年简明教程:If选择语句

C++的if选择语句是一种条件控制语句,用于根据条件执行不同的代码块。

C++中选择语句的语法是:

if (条件) {

    条件成立时需要执行的语句...

} [else {

    条件不成立时需要执行的语句...

}]

说明:

if后面使用一个括号,括号里是条件——关系表达式。

所谓的关系表达式就是判断数据的关系如何。

例如:

大于:> 比如 3>2

大于等于:>= 比如 5>=5

小于:< 比如 5<10

小于等于:<= 比如 10<=11

等于:== 比如 3+2 == 2+3

不等于:!= 比如 5 != 4+2

除了关系表达式之外,还有逻辑表达式,逻辑表达式可以表示多个条件之间的关系,有以下几种逻辑运算:

并且:&&

或者:||

非:!

if语句(单分支选择语句)

语法格式:

if(条件表达式)

语句或语句块

执行流程图:

例、读入一个整数,如果是偶数,输出yes,代码如下:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数: ";
    cin >> num;

    if (num % 2 == 0) {
        cout << "yes" << endl;
    } 
	if (num % 2 != 0){
        cout << "no" << endl;
    }

    return 0;
}

语法格式:

if(条件表达式)

    语句或语句块1

else

    语句或语句块2

执行流程图:

例、前面提到的例子,用双支选择语句实现,代码如下:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数: ";
    cin >> num;

    if (num % 2 == 0) {
        cout << "yes" << endl;
    } else {
        cout << "no" << endl;
    }

    return 0;
}

if语句的嵌套

在C++中,可以将一个if语句放在另一个if语句的内部,这样就形成了if语句的嵌套结构。以实现更复杂的条件逻辑。

if(表达式1)

    if(表达式2)

       语句1;

    else

       语句2;  

else

   if(表达式3)

       语句3;

   else

       语句4;

示例:

#include <iostream>
using namespace std;

int main() {
    int score; 
    cout << "请输入一个分数: ";
    cin >> score;

    if (score >= 60) { // 首先判断分数是否及格
        cout << "及格" << endl;
        if (score >= 80) { // 如果及格,再判断是否优秀
            cout << "优秀" << endl;
        } else {
            cout << "良好" << endl;
        }
    } else {
        cout << "不及格" << endl;
        if (score >= 50) { // 如果不及格,判断是否接近及格
            cout << "接近及格" << endl;
        } else {
            cout << "情况不妙呀" << endl;
        }
    }

    return 0;
}

在这个例子中,首先判断分数是否及格(大于等于60),如果及格,再进一步判断是否优秀(大于等于80)。如果不及格,则判断是否接近及格(大于等于50)。这个程序会输出“及格”和“优秀”,因为分数是85。

请注意,过多层次的嵌套会使代码难以阅读和维护。

三目运算符

C++中的三目运算符(?:)是一种简洁的条件运算符,其语法格式为:

(condition) ? true_expression : false_expression;

其含义是:如果 condition 为真,则表达式的值为 true_expression ,否则为 false_expression 。它可以用作简单的 if-else 语句的替代者。

示例:

#include <iostream>
using namespace std;

int main() {
  int a = 10;
  int b = 20;

  // 使用三目运算符
  int max = (a > b) ? a : b;

  cout << "最大值是:" << max << endl;

  return 0;
}

需要注意的是,三目运算符的优先级较低,因此在复杂的表达式中使用时,可能需要加上括号来明确运算顺序。

三目运算符也可以嵌套使用。例如:

int num = 10;

int result;

result = (num > 5) ? ((num < 20) ? 100 : 200) : 300;

在上面的代码中,如果num大于5小于20,则result的值为100,否则为200。如果num小于等于5,则result的值为300。

if-else if-else语句(多分支选择语句)

语法格式:

if (条件1) {

    语句块1

}

else if (条件2) {

    语句块1

}

……

else {

    语句块K

}

if-else if-else语句(多分支选择语句)执行流程图:

使用if-else if-else多分支选择语句源码:

#include <iostream>
using namespace std;

int main() {
  int num;
  cout << "请输入一个数字:";
  cin >> num;

  // 使用if语句
  if (num > 0) {
    cout << "这是一个正数" << endl;
  } else if (num == 0) {
    cout << "这是零" << endl;
  } else {
    cout << "这是一个负数" << endl;
  }

  return 0;
}

母子约定问题

源码如下:

#include <iostream>

using namespace std;

int main() {
    int fenshu;
    cout << "请输入考试分数:";
    cin >> fenshu;

    if (fenshu == 100)
        cout << "暑假不用写作业";
    else if (fenshu >= 90)
        cout << "奖励100元零花钱";
    else if (fenshu >= 80)
        cout << "奖励10元零花钱";
    else if (fenshu >= 70)
        cout << "没奖励";
    else if (fenshu >= 60)
        cout << "暑假不能玩电子游戏";
    else
        cout << "会发生可怕的事情...";

    return 0;
}

注意这个例子中条件有一定的顺序!例子中分数从高到低的顺序排列了条件,如果条件的顺序不正确,可能会导致不符合预期的结果。比如先检查fenshu >= 60,那么即使分数是100,程序也会输出“暑假不能玩电子游戏”,因为100分也满足“大于等于60”的条件

练习题:闰年问题

判断一个年份是否为闰年的规则是:

1.如果该年份能够被4整除,但不能被100整除,则该年份是闰年。

2.如果该年份能够被400整除,则该年份也是闰年。

例如,2004年是闰年,因为它能够被4整除,但不能被100整除;而1900年不是闰年,因为它能够被4整除,但同时也能被100整除,不符合第一条规则。而2000年是闰年,因为它能够被400整除,符合第二条规则。

请用不同的方法实现。

参看代码

#include <iostream>  
using namespace std;
 
int main() {  
    int year;  
    cout << "请输入一个年份: ";  
    cin >> year;  
  
    // 判断是否为闰年  
    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {  
        cout << year << " 是闰年." << endl;  
    } else {  
        cout << year << " 不是闰年." << endl;  
    }  
  
    return 0;  
}

示例中,直接在main函数内部使用了if语句来判断输入的年份是否为闰年。如果满足闰年的条件(即年份能被4整除但不能被100整除,或者能被400整除),则输出该年份是闰年;否则,输出该年份不是闰年。

如果您想要使用嵌套的if语句来判断一个年份是否为闰年,可以像下面这样写:

#include <iostream>  
using namespace std;
 
int main() {  
    int year;  
    cout << "请输入一个年份: ";  
    cin >> year;  
  
    // 使用嵌套的if语句判断是否为闰年  
    if (year % 4 == 0) {  
        if (year % 100 == 0) {  
            if (year % 400 == 0) {  
                cout << year << " 是闰年." << endl;  
            } else {  
                cout << year << " 不是闰年." << endl;  
            }  
        } else {  
            cout << year << " 是闰年." << endl;  
        }  
    } else {  
        cout << year << " 不是闰年." << endl;  
    }  
  
    return 0;  
}

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值