当前位置: 首页 > news >正文

C++ (一) 基础语法

基础语法:C++的开胃小菜

欢迎来到C++的世界,这里是编程的盛宴,也是逻辑的迷宫。别担心,我们不会一开始就让你啃硬骨头,而是从基础语法开始,让你慢慢品尝编程的美味。准备好了吗?让我们开始这场编程之旅!

1. 变量和数据类型:存储信息的盒子

在C++中,变量就像是存储信息的盒子。每个盒子都有标签,这个标签就是变量名,而盒子里装的东西就是数据。C++提供了多种类型的盒子,以适应不同类型的数据。

1.1 数据类型:选择合适的盒子

  • 整型(int):用来存储整数,比如年龄、分数等。
  • 浮点型(float和double):用来存储小数,比如价格、温度等。float占用的空间比double小,但精度也较低。
  • 字符型(char):用来存储单个字符,比如字母或符号。
  • 布尔型(bool):只有两个值,truefalse,用来表示真或假。

1.2 变量声明:给盒子贴标签

在C++中,你需要先声明变量,告诉编译器你打算存储什么类型的东西。比如:

int age; // 声明一个整型变量age
float price; // 声明一个浮点型变量price
char letter; // 声明一个字符型变量letter
bool isRaining; // 声明一个布尔型变量isRaining

1.3 变量初始化:往盒子里放东西

声明变量后,你可以立即给它赋值,这个过程叫做初始化。比如:

int age = 25; // 给age盒子里放一个整数25
float price = 19.99; // 给price盒子里放一个小数19.99
char letter = 'A'; // 给letter盒子里放一个字符'A'
bool isRaining = true; // 给isRaining盒子里放一个布尔值true

1.4 有趣的实例:猜数字游戏

让我们来写一个简单的猜数字游戏。程序会随机生成一个1到100之间的数字,然后让用户猜这个数字是多少。

#include <iostream>
#include <cstdlib> // 包含随机数生成函数
#include <ctime> // 包含时间函数int main() {int secretNumber = rand() % 100 + 1; // 生成一个1到100的随机数int guess = 0;std::cout << "猜一个1到100之间的数字:";while (guess != secretNumber) {std::cin >> guess; // 用户输入猜测的数字if (guess < secretNumber) {std::cout << "太小了,再试试!" << std::endl;} else if (guess > secretNumber) {std::cout << "太大了,再试试!" << std::endl;}}std::cout << "恭喜你,猜对了!" << std::endl;return 0;
}

这个小游戏展示了如何使用整型变量和基本的控制结构。

2. 运算符和表达式:编程的数学课

在C++中,运算符是执行操作的符号,表达式则是由变量、常量和运算符组成的组合。

2.1 算术运算符:基本的数学运算

  • 加法(+):比如 3 + 4 结果是7。
  • 减法(-):比如 7 - 4 结果是3。
  • 乘法(*):比如 3 * 4 结果是12。
  • 除法(/):比如 12 / 4 结果是3。
  • 模运算(%):求余数,比如 7 % 3 结果是1。

2.2 赋值运算符:给盒子换东西

  • 简单赋值(=):将右边的值赋给左边的变量。
  • 复合赋值(+=,-=,*=,/=):将左边的变量和右边的值进行运算,并将结果赋给左边的变量。

2.3 比较运算符:判断真假

  • 等于(==):比较两个值是否相等。
  • 不等于(!=):比较两个值是否不相等。
  • 大于(>):比较左边的值是否大于右边的值。
  • 小于(<):比较左边的值是否小于右边的值。
  • 大于等于(>=):比较左边的值是否大于等于右边的值。
  • 小于等于(<=):比较左边的值是否小于等于右边的值。

2.4 逻辑运算符:逻辑判断

  • 逻辑与(&&):两个条件都为真时,结果为真。
  • 逻辑或(||):两个条件中至少一个为真时,结果为真。
  • 逻辑非(!):反转条件的真假。

2.5 有趣的实例:计算器程序

让我们来写一个简单的计算器程序,它可以进行加、减、乘、除四种运算。

#include <iostream>int main() {int num1, num2;char operation;std::cout << "输入第一个数字:";std::cin >> num1;std::cout << "输入操作符(+,-,*,/):";std::cin >> operation;std::cout << "输入第二个数字:";std::cin >> num2;switch (operation) {case '+':std::cout << "结果是:" << num1 + num2 << std::endl;break;case '-':std::cout << "结果是:" << num1 - num2 << std::endl;break;case '*':std::cout << "结果是:" << num1 * num2 << std::endl;break;case '/':if (num2 != 0) {std::cout << "结果是:" << num1 / num2 << std::endl;} else {std::cout << "除数不能为0!" << std::endl;}break;default:std::cout << "无效的操作符!" << std::endl;}return 0;
}

这个程序展示了如何使用运算符和控制结构来实现一个简单的功能。

3. 控制结构:程序的决策者

控制结构决定了程序的执行流程,就像交通信号灯一样,指导程序何时停止、何时继续。

3.1 if语句:简单的决策

if语句用于在满足某个条件时执行一段代码。基本格式如下:

if (条件) {// 如果条件为真,执行这里的代码
}

3.2 if-else语句:二选一的决策

if-else语句用于在满足某个条件时执行一段代码,如果不满足则执行另一段代码。基本格式如下:

if (条件) {// 如果条件为真,执行这里的代码
} else {// 如果条件为假,执行这里的代码
}

3.3 switch语句:多选一的决策

switch语句用于在多个条件中选择一个执行。基本格式如下:

switch (表达式) {case1:// 如果表达式的值等于值1,执行这里的代码break;case2:// 如果表达式的值等于值2,执行这里的代码break;// ...default:// 如果表达式的值不匹配任何case,执行这里的代码
}

3.4 循环结构:重复执行的代码

循环结构用于重复执行一段代码,直到满足某个条件。

  • for循环:在已知循环次数的情况下使用。基本格式如下:
for (初始化表达式;条件表达式;更新表达式) {// 循环体
}
  • while循环:在循环次数未知,但有一个结束条件的情况下使用。基本格式如下:
while (条件表达式) {// 循环体
}
  • do-while循环:类似于while循环,但至少执行一次循环体。基本格式如下:
do {// 循环体
} while (条件表达式);

3.5 有趣的实例:FizzBuzz问题

FizzBuzz是一个经典的编程问题,要求从1打印到100,但遇到3的倍数打印"Fizz",5的倍数打印"Buzz",既是3的倍数又是5的倍数的打印"FizzBuzz"。

#include <iostream>int main() {for (int i = 1; i <= 100; i++) {if (i % 3 == 0 && i % 5 == 0) {std::cout << "FizzBuzz ";} else if (i % 3 == 0) {std::cout << "Fizz ";} else if (i % 5 == 0) {std::cout << "Buzz ";} else {std::cout << i << " ";}}std::cout << std::endl;return 0;
}

这个程序展示了如何使用循环和条件判断来解决一个有趣的问题。

4. 数组和字符串:存储多个数据

数组和字符串是存储多个数据的容器。数组可以存储相同类型的多个数据,而字符串是字符数组的特例。

4.1 数组:存储多个相同类型的数据

数组的声明格式如下:

类型 数组名[大小];

比如,声明一个整型数组:

int numbers[5]; // 声明一个可以存储5个整数的数组

你可以使用索引来访问和修改数组中的元素,索引从0开始:

numbers[0] = 10; // 将第一个元素设置为10
numbers[1] = 20; // 将第二个元素设置为20
// ...

4.2 字符串:字符的数组

在C++中,字符串通常使用std::string类来表示。你可以使用std::string的成员函数来操作字符串。

#include <string>int main() {std::string name = "Kimi"; // 声明一个字符串变量并初始化std::cout << "Hello, " << name << "!" << std::endl; // 输出Hello, Kimi!return 0;
}

4.3 有趣的实例:找出数组中的最大值

让我们来写一个程序,找出一个整数数组中的最大值。

#include <iostream>int main() {int numbers[] = {3, 5, 1, 8, 2, 9, 4};int max = numbers[0]; // 假设第一个元素是最大的for (int i = 1; i < sizeof(numbers) / sizeof(numbers[0]); i++) {if (numbers[i] > max) {max = numbers[i]; // 发现更大的值,更新max}}std::cout << "数组中的最大值是:" << max << std::endl;return 0;
}

这个程序展示了如何使用数组和循环来解决一个实际问题。

结语

嘿,看来我们已经把C++的基础语法翻来覆去地玩弄了一番。现在,你的编程基础应该比那些只会在键盘上敲“Hello, World!”的新手们要牢固得多了。但是,别忘了,真正的编程之旅才刚刚开始,就像是你刚刚学会了如何用勺子吃饭,接下来还有无数的美味佳肴等着你去品尝。

记住,编程就像是在和电脑玩一场永无止境的捉迷藏。有时候,你会发现自己藏得太好了,连自己都找不到那些bug。但别担心,每个程序员都是从这样的尴尬时刻中成长起来的。你的代码可能会被吐槽,你的逻辑可能会被质疑,但只要你坚持不懈,总有一天,你会写出让机器都羡慕的代码。

所以,拿起你的键盘,继续敲打吧!让那些字符在你的指尖下跳舞,让那些代码在你的屏幕上歌唱。编程是一场创意的狂欢,而你,就是这场狂欢的DJ。不要害怕犯错,不要害怕失败,因为每一次的失败,都是你通往成功的垫脚石。

最后,别忘了,编程不只是冷冰冰的代码,它也可以是温暖人心的艺术。用你的代码去解决问题,去创造价值,去触动人心。让世界看看,一个程序员的力量有多么强大。

好了,我得走了,我的咖啡凉了。继续你的编程之旅吧,未来的代码大师,愿代码与你同在!💻💡🚀

http://www.lryc.cn/news/467599.html

相关文章:

  • Qt/C++路径轨迹回放/回放每个点信号/回放结束信号/拿到移动的坐标点经纬度
  • C 语言介绍及操作案例
  • Ivanti云服务被攻击事件深度解析:安全策略构建与未来反思
  • 如何做出正确选择编程语言:关于Delphi 与 C# 编程语言的优缺点对比
  • 39.3K Star,一个现代的数据库ORM工具,专为Node.js和TypeScript设计
  • Nginx和Mysql的基础命令
  • Docker之容器常见操作
  • 猜数游戏(Fortran)
  • 代码随想录 -- 贪心 -- 单调递增的数字
  • 【小洛的VLOG】Web 服务器高并发压力测试(Reactor模型测试)
  • Window:下载与安装triton==2.0.0
  • 零,报错日志 2002-Can‘t connect to server on‘106.54.209.77‘(1006x)
  • R语言笔记(一)
  • MusePose模型部署指南
  • 又一次升级:字节在用大模型在做推荐啦!
  • 无线领夹麦克风怎么挑选,麦克风行业常见踩坑点,避雷不专业产品
  • OJ-1017中文分词模拟器
  • Unity 关于UGUI动静分离面试题详解
  • HarmonyNext保存Base64文件到Download下
  • 069_基于springboot的OA管理系统
  • hive数据库,表操作
  • openpnp - 在顶部相机/底部相机高级校正完成后,需要设置裁剪所有无效像素
  • Vue+TypeScript+SpringBoot的WebSocket基础教学
  • 大话网络协议:HTTPS协议和HTTP协议有何不同?为什么HTTPS更安全
  • 13图书归还-云图书管理系统(Vue3+Spring Boot+element plus)
  • 中航资本:“女人的茅台”重挫!超7700亿元英伟达概念业绩爆发
  • day7:软件包管理
  • 探索Konko AI:快速集成大语言模型的最佳实践
  • 网络地址和本地网络地址
  • 【closerAI ComfyUI】AI绘画界新技术RF Inversion图像编辑和风格迁移!能跟ipadapter争高低吗?