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,代码如下:

cpp 复制代码
#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

执行流程图:

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

cpp 复制代码
#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;

示例:

cpp 复制代码
#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 语句的替代者。

示例:

cpp 复制代码
#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多分支选择语句源码:

cpp 复制代码
#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;
}

母子约定问题

源码如下:

cpp 复制代码
#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整除,符合第二条规则。

请用不同的方法实现。

、参看代码

cpp 复制代码
#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语句来判断一个年份是否为闰年,可以像下面这样写:

cpp 复制代码
#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;  
}
相关推荐
小飞猪Jay25 分钟前
C++面试速通宝典——13
jvm·c++·面试
rjszcb1 小时前
一文说完c++全部基础知识,IO流(二)
c++
小字节,大梦想2 小时前
【C++】二叉搜索树
数据结构·c++
吾名招财2 小时前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
我是哈哈hh3 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
憧憬成为原神糕手3 小时前
c++_ 多态
开发语言·c++
郭二哈3 小时前
C++——模板进阶、继承
java·服务器·c++
挥剑决浮云 -3 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
丶Darling.3 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
labuladuo5203 小时前
Codeforces Round 977 (Div. 2) C2 Adjust The Presentation (Hard Version)(思维,set)
数据结构·c++·算法