C++大白话系列-入门基础篇-08-输入输出与分支语句

阿里云教程2个月前发布
15 0 0

输入输出与分支语句:让程序能说会听

从 Hello World 开始?不!从实用代码开始!

是时候写代码了

前两节我们掌握了:

  • ✅ 如何安装 Visual Studio
  • ✅ 如何创建项目
  • ✅ 如何编译运行
  • ✅ 程序运行的原理

接下来,我们要开始写真正有用的代码了!


不从 Hello World 开始

为什么不讲 Hello World?

传统教学:

#include <stdio.h>

int main() {
printf("Hello World
");
return 0;
}

问题: 许多人的”不归路”从 Hello World 开始

我们的方式: 从实用代码开始,学了就能用!


第一个关键技能:英文输入法

⚠️ 最常见的错误

写代码必须用英文输入法!

需要英文符号

int main() {
 // 这些符号必须是英文的:
 ( ) // 圆括号
 [ ] // 方括号
 { } // 花括号
 ; // 分号
 , // 逗号
}

中文符号的后果

错误示例:

int main(){ // ❌ 中文括号和花括号
return 0// ❌ 中文分号

结果: 红色波浪线 + 编译失败

如何识别错误

Visual Studio 会提示:

错误列表窗口:
第3行:错误 C2143: 语法错误: 缺少";"
第1行:错误 C2059: 语法错误:"("

打开错误列表窗口

如果没有看到错误提示窗口:

视图(View) → 错误列表(Error List)

错误列表会显示:

  • 错误所在行号
  • 错误类型
  • 错误描述

回顾:变量声明

声明一个变量

long long n = 0;

拆解说明:

部分

含义

long long

变量类型(整数,范围大)

n

变量名

=

赋值号(不是等于号!)

0

初始值

;

语句结束

long long 类型

范围: -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807

特点: 只能存储整数

修改变量的值

long long n = 0; // 初始值为 0

n = 10; // 改为 10
n = 100; // 改为 100
n = -50; // 改为 -50

记住: = 是赋值号,不是等于号!


分支语句:if

if 语句结构

if (条件) {
 // 条件成立时执行
}

组成部分:

  1. if 关键字
  2. ( ) 圆括号:里面写条件(表达式)
  3. { } 花括号:里面写要执行的代码

什么是表达式?

表达式 = 运算符 + 操作数 + 括号

示例:

5 + 3 // 加法表达式
10 - 2 // 减法表达式
a * b // 乘法表达式
(x + y) / 2 // 复杂表达式

特点: 表达式会产生一个结果


关系运算符

新的运算符家族

之前学过: 算术运算符(+ – * / %)

目前学习: 关系运算符(判断条件)

六大关系运算符

运算符

读法

意义

示例

==

等于

是否相等

n == 0

!=

不等于

是否不相等

n != 0

>

大于

左边是否大于右边

n > 0

<

小于

左边是否小于右边

n < 0

>=

大于等于

左边是否≥右边

n >= 0

<=

小于等于

左边是否≤右边

n <= 0

⚠️ 重点:两个等号

= // 一个等号:赋值号
== // 两个等号:等于号(判断)

强烈提议读作:”是否等于”

关系运算符的结果

只有两种结果:

  • 条件成立 → 1(真)
  • 条件不成立 → 0(假)

示例代码

long long n = 0;

// 各种关系运算的结果
n == 0 // 结果:1(真)
n > 0 // 结果:0(假)
n < 0 // 结果:0(假)
n != 0 // 结果:0(假)
n >= 0 // 结果:1(真)
n <= 0 // 结果:1(真)

运算符优先级

算术运算符 > 关系运算符

if (5 + 3 > 7) {
 // 先算:5 + 3 = 8
 // 再判断:8 > 7  
}

if 语句详解

完整示例

long long n = 0;

if (n == 0) {
printf("n 等于 0
");
printf("这是第二句
");
}

执行过程:

1. 判断条件:n == 0
2. 结果为 1(真)
3. 执行花括号中的代码

花括号的作用

有花括号: 可以包含多条语句

if (n == 0) {
printf("第一句
");
printf("第二句
");
printf("第三句
");
}

没有花括号: 只关联一条语句

if (n == 0)
printf("只有这一句
");
printf("这句总是执行
"); // 不属于 if

if 的执行逻辑

 判断条件
 ↓
 结果是1?
 ↙ ↘
 是 否
 ↓ ↓
 执行 跳过

引入输入输出功能

include 语句

需要的功能: 控制台输入输出

引入方法:

#include <stdio.h>

作用: 引入标准输入输出库

位置: 必须写在文件开头

为什么需要 include?

程序需要功能 → 引入对应的库 → 就能使用功能

后面几节会详细讲解,目前先会用!


输出功能:printf

基本用法

printf("要输出的内容
");

示例:

printf("Hello
");
printf("这是第二行
");

输出:

Hello
这是第二行

转义字符

符号

含义

换行

制表符(Tab)

\

反斜杠

双引号

输出变量

long long n = 100;

printf("n 的值是:%lld
", n);

输出:

n 的值是:100

格式化符号:

类型

格式符

int

%d

long long

%lld

float

%f

double

%lf

char

%c


输入功能:scanf

基本用法

long long n;
scanf("%lld", &n);

含义: 从键盘读取一个整数,存到变量 n 中

⚠️ 注意 & 符号

scanf("%lld", &n); // ✅ 正确:有 &
scanf("%lld", n); // ❌ 错误:没有 &

为什么需要 &? 后面会详细讲解,目前记住就行

完整示例

#include <stdio.h>

int main() {
long long n;
printf("请输入一个数字:
");
scanf("%lld", &n);
printf("你输入的数字是:%lld
", n);
return 0;
}

运行效果:

请输入一个数字:
123 ← 用户输入
你输入的数字是:123

断点调试

什么是断点?

断点 = 暂停点

作用: 让程序运行到某一行时暂停,方便观察

设置断点

方法: 在行号左侧点击鼠标左键

int main() {
long long n;
printf("请输入:
");
scanf("%lld", &n); // ← 在这里打断点(红点)
printf("你输入了:%lld
", n);
return 0;
}

开始调试

快捷键: F5

或: 点击”本地 Windows 调试器”

查看变量值

方法: 鼠标悬停在变量名上

程序暂停后
 
鼠标放到变量 n 
 
显示:n = 123

调试技巧

继续运行: F5

单步执行: F10

停止调试: Shift + F5


综合示例:简单程序

判断数字正负

#include <stdio.h>

int main() {
long long n = 0;
printf("请输入一个整数:
");
scanf("%lld", &n);
if (n > 0) {
printf("这是一个正数
");
 }
if (n == 0) {
printf("这是零
");
 }
if (n < 0) {
printf("这是一个负数
");
 }
return 0;
}

运行效果1:

请输入一个整数:
5
这是一个正数

运行效果2:

请输入一个整数:
-3
这是一个负数

计算赔偿金额

#include <stdio.h>

int main() {
long long chickens = 0; // 撞死的鸡数量
long long price = 200; // 每只鸡的价格
long long total = 0; // 总赔偿
printf("请输入撞死的鸡的数量:
");
scanf("%lld", &chickens);
total = chickens * price;
printf("撞死了 %lld 只鸡
", chickens);
printf("每只 %lld 元
", price);
printf("需要赔偿:%lld 元
", total);
return 0;
}

运行效果:

请输入撞死的鸡的数量:
5
撞死了 5 只鸡
每只 200 
需要赔偿:1000 

完整代码模板

标准框架

#include <stdio.h>

int main() {
 // 1. 声明变量
long long n = 0;
 // 2. 输出提示
printf("请输入:
");
 // 3. 输入数据
scanf("%lld", &n);
 // 4. 处理逻辑
if (n > 0) {
printf("是正数
");
 }
 // 5. 输出结果
printf("结束
");
return 0;
}

本文要点回顾

  • 英文输入法:写代码必须用英文符号
  • 错误列表:查看编译错误的利器
  • 关系运算符:== != > < >= <=
  • if 语句:条件判断,选择执行
  • printf:输出到控制台
  • scanf:从键盘输入(记得 &)
  • 断点调试:暂停程序,查看变量

记忆口诀

英文输入写代码,符号错误编不过。

关系运算判条件,if 语句做选择。

printf 输出看结果,scanf 输入别忘&。


实战练习

练习1:判断奇偶

任务: 输入一个数,判断是奇数还是偶数

提示: 用 % 取余运算符

点击查看答案

cpp #include <stdio.h> int main() { long long n; printf(“请输入一个整数:
“); scanf(“%lld”, &n); if (n % 2 == 0) { printf(“%lld 是偶数
“, n); } if (n % 2 != 0) { printf(“%lld 是奇数
“, n); } return 0; }

练习2:计算器

任务: 输入两个数,输出它们的和、差、积、商

点击查看答案

cpp #include <stdio.h> int main() { long long a, b; printf(“请输入第一个数:
“); scanf(“%lld”, &a); printf(“请输入第二个数:
“); scanf(“%lld”, &b); printf(“和:%lld
“, a + b); printf(“差:%lld
“, a – b); printf(“积:%lld
“, a * b); if (b != 0) { printf(“商:%lld
“, a / b); } return 0; }

练习3:找出最大值

任务: 输入两个数,输出较大的那个

点击查看答案

cpp #include <stdio.h> int main() { long long a, b; printf(“请输入第一个数:
“); scanf(“%lld”, &a); printf(“请输入第二个数:
“); scanf(“%lld”, &b); if (a > b) { printf(“最大值是:%lld
“, a); } if (b > a) { printf(“最大值是:%lld
“, b); } if (a == b) { printf(“两个数相等:%lld
“, a); } return 0; }

练习4:判断分数等级

任务: 输入分数(0-100),判断等级

  • 90-100:优秀
  • 60-89:及格
  • 0-59:不及格

点击查看答案

cpp #include <stdio.h> int main() { long long score; printf(“请输入分数(0-100):
“); scanf(“%lld”, &score); if (score >= 90) { printf(“优秀
“); } if (score >= 60 && score < 90) { printf(“及格
“); } if (score < 60) { printf(“不及格
“); } return 0; }


互动时间

思考题:

  1. 为什么 = 和 == 容易混淆?如何避免?
  2. scanf 为什么需要 & 符号?
  3. 如何判断一个数是否在某个范围内?

如果本文对你有协助,欢迎:

  • 点赞支持
  • 关注不迷路
  • 评论区分享你的第一个交互程序
  • ⭐ 收藏慢慢看

—-本文为”C++ 大白话”系列第 8 篇

© 版权声明

相关文章

暂无评论

none
暂无评论...