以下是结合你提供的 C++ 代码和知识点整理的学习笔记教程,包含代码注释与知识讲解,帮助理解条件判断(if/else)、输入输出及简单逻辑实现:

一、基础语法与输入输出回顾

  1. 头文件与命名空间

    • #include<iostream>:引入输入输出流库,让程序能实现控制台的输入(cin)和输出(cout)。
    • using namespace std;:使用标准命名空间,避免重复写 std::(如 std::cout 可直接写 cout )。

    示例框架:

    #include<iostream>
    using namespace std;
    int main() {
        // 程序逻辑写在这里
        return 0; // 程序正常结束标志
    }
    
  2. 输入(cin)与输出(cout

    • cin >> 变量;:从控制台读取用户输入,赋值给变量(会自动跳过空格、换行)。
    • cout << 内容;:向控制台输出内容,endl 用于换行(等价于 \n )。

二、条件判断(if/else)核心逻辑

作用:根据条件是否成立,决定程序执行哪一段代码,实现“分支选择”。

1. 语法结构

if (条件表达式) {
    // 条件成立时执行的代码
} else {
    // 条件不成立时执行的代码(else 可选,按需使用)
}
  • 条件表达式:结果是布尔值(真 true/非 0,假 false/0 ),常用比较运算符(> < >= <= == != )、逻辑运算符(&& 且、|| 或、! 非 )构建。

三、案例实践与代码解析

以下结合“判断奇偶”“判断是否及格”两个案例,详解代码逻辑,注释清晰标注每一步作用。

案例 1:判断奇偶(输入自然数,输出 Odd/Even

#include<iostream>
using namespace std;
int main() {
    int n;          // 定义变量,存储用户输入的自然数
    cin >> n;       // 读取用户输入,存入 n 
    
    // 判断是否为偶数:n 除以 2 的余数为 0
    if (n % 2 == 0) { 
        cout << "Even"; // 余数为 0 → 偶数,输出 "Even"
    }
    // 判断是否为奇数:n 除以 2 的余数为 1
    if (n % 2 == 1) { 
        cout << "Odd";  // 余数为 1 → 奇数,输出 "Odd"
    }
    
    return 0; // 程序结束
}

关键逻辑

  • n % 2 是取余运算,结果为 n 除以 2 的余数。
  • 余数为 0 → 能被 2 整除 → 偶数;余数为 1 → 不能被 2 整除 → 奇数。

案例 2:判断是否及格(输入成绩,输出 YES/NO

#include<iostream>
using namespace std;
int main() {
    int score;          // 定义变量,存储成绩
    cin >> score;       // 读取用户输入的成绩
    
    // 条件:成绩 >= 60 分 → 及格
    if (score >= 60) { 
        cout << "YES";  // 及格,输出 "YES"
    }
    // 条件:成绩 < 60 分 → 不及格
    if (score < 60) {  
        cout << "NO";   // 不及格,输出 "NO"
    }
    
    return 0; // 程序结束
}

简化写法(用 else 优化)
因为“及格”和“不及格”是互斥条件,用 else 更简洁,减少重复判断:

#include<iostream>
using namespace std;
int main() {
    int score;
    cin >> score;
    
    if (score >= 60) {
        cout << "YES"; 
    } else { 
        // 不满足 if 条件(即 score < 60 )时执行
        cout << "NO";  
    }
    
    return 0;
}

四、额外拓展:时间差计算(开头代码解析)

你提供的第一段代码是计算两个时间的秒差(按 时:分:秒 格式输入),虽然和 if 无关,但可拓展学习输入处理与逻辑计算:

#include<iostream>
#include<cmath> // 实际这里没用到,可删;若用数学函数(如 sqrt )才需要
using namespace std;
int main() {
    int h1, m1, s1; // 存储第一个时间的 时、分、秒
    int h2, m2, s2; // 存储第二个时间的 时、分、秒
    char t;         // 用于读取分隔符(如 ":" )
    
    // 输入第一个时间,格式如:12:34:56
    cin >> h1 >> t >> m1 >> t >> s1; 
    // 输入第二个时间,格式如:12:35:00
    cin >> h2 >> t >> m2 >> t >> s2; 
    
    int res = 0; // 存储总秒差
    // 小时差 → 转成秒:1 小时 = 3600 秒
    res += (h2 - h1) * 3600; 
    // 分钟差 → 转成秒:1 分钟 = 60 秒
    res += (m2 - m1) * 60;   
    // 秒差
    res += s2 - s1;         
    
    cout << res; // 输出总秒差
    return 0;
}

逻辑说明

  • 把时间拆分为“时、分、秒”,分别计算差值,再转换为统一单位(秒)累加,得到最终时间差。

五、总结

  1. 输入输出cin 读数据、cout 写数据,实现程序与用户交互。
  2. 条件判断if 根据条件执行不同分支,else 处理“不满足条件”的情况,让程序有“选择逻辑”。
  3. 实践场景:可用于判断奇偶、成绩是否及格、时间计算等,是程序处理复杂逻辑的基础。

多动手改改代码(比如给判断奇偶加 else、调整时间差逻辑),就能更快掌握这些知识点啦~

0 条评论

目前还没有评论...