标签:range 范围 lin std 比较 cas day 注意 编程
选择结构
if语句:
if语句的语法形式
if (表达式) 语句
例:if (x > y) cout << x;
if (表达式) 语句1 else 语句2
例:if (x > y) cout << x;
else cout << y;
if (表达式1) 语句1
else if (表达式2) 语句2
else if (表达式3) 语句3
…
else 语句 n
例2-2输入一个年份,判断是否闰年
#include <iostream> using namespace std;
int main() { int year; bool isLeapYear; cout << "Enter the year: "; cin >> year; isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)); if (isLeapYear) cout << year << " is a leap year" << endl; else cout << year << " is not a leap year" << endl; return 0; }
嵌套的if结构
语法形式:
if( )
if( ) 语句 1
else 语句 2
else
if( ) 语句 3
else 语句 4
注意:语句 1、2、3、4 可以是复合语句;每层的 if 与 else 配对,或用 { } 来确定层次关系。
例2-3:输入两个整数,比较两个数的大小
#include<iostream> using namespace std; int main() { int x, y; cout << "Enter x and y:"; cin >> x >> y; if (x != y) { if (x > y) cout << "x > y" << endl; else } cout << "x < y" << endl; else{ cout << "x = y" << endl; } return 0; }
switch语句
语法形式
switch (表达式)
{ case 常量表达式 1:语句1
case 常量表达式 2:语句2
case 常量表达式 n:语句n
default : 语句n+1
}
执行顺序: 以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。
注意: case分支可包含多个语句,且不用{ }。
表达式、判断值都是int型或char型。
如果若干分支执行内容相同可共用一组语句。
例2-4:输入一个0~6的整数,转换成星期输出
#include<iostream> #include<bitset> using namespace std; int main() { int day; cin >> day; switch (day) { case 0: cout << "Sunday" << endl; break; case 1: cout << "Monday" << endl; break; case 2: cout << "Tuesday" << endl; break; case 3: cout << "Wednesday" << endl; break; case 4: cout << "Thursday" << endl; break; case 5: cout << "Friday" << endl; break; case 6: cout << "Saturday" << endl; break; default: cout << "Day out of range Sunday .. Saturday" << endl; break; } return 0; }
例2-4:编写一个共用执行语句的分支
#include<iostream> using namespace std; int main() { int i; cin >> i; switch (i) { case 0: case 1: case 2: cout << "Hello world!" << endl; break; default: cout << "Hello c++!!!" << endl; break; } //当i=0,1,2时,都有相同的输出。 return 0; }
while语句
语法形式:while (表达式) 语句
执行顺序:先判断表达式的值,若为 true 时,执行语句。
例2-5 求自然数1~10之和
#include <iostream> using namespace std; int main() { int i = 1, sum = 0; while (i <= 10) { sum += i; //相当于sum = sum + i; i++; } cout << "sum = " << sum << endl; return 0; }
do-while语句
do-while 语句的语法形式
do 语句 // 可以是复合语句,其中必须含有改变条件表达式值的语句。
while (表达式)
执行顺序:先执行循环体语句,后判断条件。表达式为 true 时,继续执行循环体。
例2-6:输入一个数,将各位数字翻转后输出
#include <iostream> using namespace std; int main() { int n, right_digit, newnum = 0; cout << "Enter the number: "; cin >> n; cout << "The number in reverse order is "; do { right_digit = n % 10; cout << right_digit; n /= 10; /*相当于n=n/10*/ } while (n != 0); cout << endl; return 0; }
例2-7用do-while语句编程,求自然数1~10之和
#include <iostream> using namespace std; int main() { int i = 1, sum = 0; do { sum += i; i++; } while (i <= 10); cout << "sum = " << sum << endl; return 0; }
对比下面的程序
程序1
#include <iostream> using namespace std; int main() { int i, sum = 0; cin >> i; while (i <= 10) { sum += i; i++; } cout << "sum= " << sum << endl; return 0; }
程序2:
#include<iostream> using namespace std; int main() { int i, sum = 0; cin >> i; do { sum += i; i++; } while (i <= 10); { cout << "sum=" << sum << endl; } return 0; }
for语句
for语句语法形式:
for语句的另一种形式:范围for语句:
for (声明:表达式)
语句
自定义类型
类型别名:为已有类型另外命名
typedef 已有类型名 新类型名表
例:
typedef double Area, Volume;
typedef int Natural;
Natural i1,i2;
Area a;
Volume v;
using 新类型名 = 已有类型名;
例:using Area = double;using Volume = double;
枚举类型
定义方式:将全部可取值一一列举出来。
语法形式:enum 枚举类型名 {变量值列表};
例:enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};
默认情况下SUN=0,MON=1,TUE=2,......,SAT=6
C++包含两种枚举类型:
不限定作用域枚举类型:enum 枚举类型名 {变量值列表};
限定作用域的enum类将在第4章介绍。
不限定作用域枚举类型说明:
枚举元素是常量,不能对它们赋值
例如有如下定义:enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT};不能写赋值表达式:SUN = 0,枚举元素具有默认值,它们依次为: 0,1,2,......。
也可以在声明时另行指定枚举元素的值,如:enum Weekday{SUN=7,MON=1,TUE,WED, THU,FRI,SAT};枚举值可以进行关系运算。
整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。
枚举值可以赋给整型变量。
例2-11
设某次体育比赛的结果有四种可能:胜(WIN)、负(LOSE)、平局(TIE)、比赛取消(CANCEL),编写程序顺序输出这四种情况。
分析:
比赛结果只有四种可能,可以声明一个枚举类型。
1 #include <iostream> 2 using namespace std; 3 4 enum GameResult { WIN, LOSE, TIE, CANCEL }; 5 int main() { 6 GameResult result; 7 enum GameResult omit = CANCEL; 8 for (int count = WIN; count <= CANCEL; count++) 9 { 10 result = GameResult(count); 11 if (result == omit) 12 { 13 cout << "The game was cancelled" << endl; 14 } 15 else 16 { 17 cout << "The game was played "; 18 if (result == WIN) 19 { 20 cout << "and we won!"; 21 } 22 if (result == LOSE) 23 { 24 cout << "and we lost."; 25 } 26 cout << endl; 27 } 28 } 29 return 0; 30 }
auto类型与decltype类型
auto:编译器通过初始值自动推断变量的类型
例如:auto val = val1 + val2;
如果val1+val2是int类型,则val是int类型;
如果val1+val2是double类型,则val是double类型。
decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
例如:decltype(i) j = 2;
标签:range 范围 lin std 比较 cas day 注意 编程
原文地址:https://www.cnblogs.com/puheng/p/9250356.html