C++自学笔记
教材:明解C++
第二章程序流的分支
2.1 if语句
- C++中的else仅与最近的if相匹配;
- 语句中仅有分号为空语句;
- 短路求值 :仅通过左操作符进行逻辑判断;
- 条件判断中使用 !n 表示False,不执行if后面的语句
if !n //表示False,不执行if后面的语句
- 赋值运算符是右结合的:
a = (b = 5)
- 三元运算符
//定义最小值
int min = a<b ? a:b
//求差值
cout << "差值为" <<(a<b ? b-a :a-b) << "。\n";
? 之前的值为true,显示a;? 之前的值为false,显示b
- 复合语句(块)
- 用 { } 包围的语句的排列称为块(block)或者复合语句
- 块在语法上被视为一条语句,if 语句控制的语句只有一条(else 之后也只控制一条语句),可以使用块来增加if语句的复杂度。
- 逗号运算符 可以用逗号来替代块,但是会舍弃逗号左边的结果。
if (a < b)
> min = a, max = b;//只能得到max =b
> else
> min = b, max = a;//只能得到max =a
- 对两个值排序
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout << "变量a"; cin >> a;
cout << "变量b"; cin >> b;
if (a>b){
int t = a;//变量 t 的声明语句。
a = b;
b = t;
}
cout << "按a<b排序。\n";
cout << "变量a为"<< a << "。\n";
cout << "变量b为"<< b << "。\n";
}
t是在交换两个变量的值时所需的操作变量。在块中声明的变量仅限于在该块中使用。
- if 语句的条件部分可以声明变量
#include <iostream>
using namespace std;
int main()
{
int ;
cout << "整数值:";
cin >> n;
if (int mod = n%10){
cout = "这个值不可以被10整除。\n"
cout = "余数为"<< mod << "。\n"
} else {
cout <<"这个值可以被10整除。\n"
}
11.fmod 函数用来对浮点数取余。