【C++学习笔记】基础语法

每天学一会,防痴呆~


文章目录

  • 1. 基本概念
  • 2. 数据类型
    • 2.1 整型
    • 2.2 sizeof关键字
    • 2.3 浮点型(实型)
    • 2.4 字符型
    • 2.5 转义字符
    • 2.6 字符串型
    • 2.7 布尔类型
  • 3. 运算符
    • 3.1 算术运算符
    • 3.2 逻辑运算符
  • 4. 程序流程结构
    • 4.1 选择结构
      • 4.1.1 if语句
      • 4.1.2 三目运算符
      • 4.1.3 switch语句
    • 4.2 循环结构
      • 4.2.1 while语句
      • 4.2.2 do...while语句
      • 4.2.3 for循环语句
    • 4.3 跳转语句
      • 4.3.1 break
      • 4.3.2 continue
      • 4.3.3 goto语句
  • 5. 数组
    • 5.1 一维数组
      • 5.1.1 一维数组定义方式

1. 基本概念

  • 变量

语法:数据类型 变量名 = 变量初始值
例如:int a = 1;

  • 常量

宏常量:#define Month 12
const修饰变量:const int Month=12

  • 关键字

关键字是C++中预先保留的单词

  • 标识符

2. 数据类型

数据类型存在的意义是为变量分配合适的内存空间

2.1 整型

【C++学习笔记】基础语法_第1张图片

2.2 sizeof关键字

作用:统计数据类型所占内存大小
语法:sizeof(数据类型 / 变量)

2.3 浮点型(实型)

【C++学习笔记】基础语法_第2张图片

  • 小数默认为double类型,创建float类型变量时通常在末尾添加‘f’,例如:float pi = 3.14f
  • 默认情况下,输出一个小数,会显示6位有效数字
  • 科学计数法:float f1 = 3e-2

2.4 字符型

字符型变量用于显示单个字符:char ch = 'a'

注意:

  1. 不能用双引号:char ch = "a" 错误
  2. 单引号内只能引用一个字符:char ch = 'abcd' 错误
  3. 字符型变量将对应的ASCII编码放入到内存中:
    cout << (int)ch << endl;输出为:97,小写字母a的ASCII编码是97

2.5 转义字符

【C++学习笔记】基础语法_第3张图片

2.6 字符串型

  1. C风格字符串:char str[] = "hello world";
  2. C++风格字符串:
    #include
    string char = "hello world";

2.7 布尔类型

布尔类型只有两个值:truefalse,占用1个字节

3. 运算符

3.1 算术运算符

  1. 递增运算符:++
    前置递增:变量先+1,再执行表达式
    后置递增:先执行表达式,变量再+1
  2. 递减运算符:--
// 1. 前置递增:变量先+1,再执行表达式
int a = 10;
int b = ++a * 10; 
// a = 11, b = 110

// 2. 后置递增:先执行表达式,然后变量+1
int c = 10;
int d = c++ * 10;  
// c = 11, d = 100

3.2 逻辑运算符

【C++学习笔记】基础语法_第4张图片

4. 程序流程结构

4.1 选择结构

4.1.1 if语句

if (score > 600) 
{
	cout << "A" << endl;
}
else if (score > 500 & score < 600)
{
	cout << "B" << endl;
}
else 
{
	cout << "C" << endl;
}

4.1.2 三目运算符

语法:表达式1 ? 表达式2 : 表达式3
解释:如果表达式1为真,返回表达式2的执行结果;如果表达式1为假,返回表达式3的执行结果。

C++中三目运算符返回的是变量,可以继续赋值
int a = 10;
int b = 20;
(a > b ? a : b) = 30;
cout << b << endl; 输出b=30

4.1.3 switch语句

int score = 100;
switch (score)
{
	int score = 100;
	switch (score)
	{
	case 100:
		cout << "A" << endl;
		break;  // 跳出 
	case 80:
		cout << "B" << endl;
		break;
	default:   // 所有case均不成立时选择default
		cout << "C" << endl;
		break;
	}	
}

4.2 循环结构

4.2.1 while语句

// 猜数字小游戏
// 添加随机数种子,根据当前系统时间生成随机数
srand((unsigned int)time(NULL));
// 系统生成随机数
int ans = rand() % 100 + 1;
int val = 0;
int chance = 5;

while (chance)
{
	cout << "请输入您猜的数字: " << endl;
	cin >> val;
	if (val > ans)
	{
		cout << "猜测过大,您还有" << --chance << "次机会" << endl;
	}
	else if (val < ans)
	{
		cout << "猜测过小,您还有" << --chance << "次机会" << endl;
	}
	else
	{
		cout << "恭喜您猜对了" << endl;
		break;
	}
}

4.2.2 do…while语句

语法:do {循环语句} while (条件语句)
注意:与while语句的区别在于do…while语句会先执行一次循环语句,再判断循环条件

/*
题目:寻找水仙花数(水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身)
步骤:
1. 遍历所有三位数,即100~999
2. 获取每个三位数的百位、十位和个位
3. 判断是否为水仙花数
*/ 
int num = 100;
do {
	int a = 0;  //数字个位
	int b = 0;  //数字十位
	int c = 0;  //数字百位

	a = num % 10;
	b = num / 10 % 10;
	c = num / 100;

	if (a * a * a + b * b * b + c * c * c == num)
	{
		cout << num << endl;
	}

	num++;

} while (num < 1000);

4.2.3 for循环语句

案例1:

/*
敲桌子小游戏
规则:从1开始计数直至100,遇到7的倍数或个位数为7或十位数为7,输出“敲桌子”,否则输出当前数字
*/ 
for (int num = 1; num <= 100; num++)
{
	if (num % 7 == 0 || num % 10 == 7 || num / 10 == 7)
	{
		cout << "敲桌子" << endl;
	}
	else
	{
		cout << num << endl;
	}
}

案例2:嵌套循环

/*
* 乘法口诀表
*/

for (int i = 1; i < 10; i++)
{
	for (int j = 1; j <= i; j++)
	{
		cout << j << "*" << i << "=" << i * j << " ";
	}
	cout << endl;
}

4.3 跳转语句

4.3.1 break

  1. 退出switch语句
  2. 退出循环语句

4.3.2 continue

作用:在循环语句中,跳过本次循环中尚未执行的语句,继续执行下一次循环
案例:

/*
* 输出1~100范围内的奇数
*/

for (int i = 1; i <= 100; i++)
{
	if (i % 2 == 0)
	{
		continue;
	}
	cout << i << endl;
}

4.3.3 goto语句

作用:无条件跳转语句

cout << "1. *****" << endl;
cout << "2. *****" << endl;
goto FLAG;
cout << "3. *****" << endl;
cout << "4. *****" << endl;
FLAG:
cout << "5. *****" << endl;

5. 数组

5.1 一维数组

5.1.1 一维数组定义方式

一维数组有三种定义方式:

  1. 数据类型 数组名[数组长度]
    int arr1[10]
  2. 数据类型 数组名[数组长度] = {值1, 值2, ...}
    int arr2[10] = {1,2} 初始化数据时,没有填写完默认用0填补
  3. 数据类型 数组名[] = {值1, 值2, ...}
    int arr3[] = {1, 2, 3}

你可能感兴趣的:(#,C++,c++,学习)