【C++】循环(for/while/do-while)和关系表达式

for循环

循环格式

循环步骤:设置初始值→执行测试(两个值比较),看循环是否应当继续进行→执行循环操作→更新用于测试的值。
格式:
for (initialization; test-expression; update-expression)

C++常用方式:在for和括号之间加一个空格,而省略函数名与括号间的空格。

相关说明

  1. 任何值或任何有效的值和运算符的组合都是表达式;赋值运算符是从右到左结合;
    cout.setf(ios::boolalpha)函数调用设置了一个标记,该标记命令cout显示true和false,而不是0或1.
    回忆:a++意味着使用a的当前值计算表达式,然后将a的值加1;++a的意思是先将a的值加1再用新的值计算表达式。
  2. 副作用指的是在计算表达式时对某些东西(如存储在变量中的值)进行了修改;顺序点是程序执行过程中的一个点,在这里进入下一步之前将确保对所有的副作用都进行了评估。(分号就是一个顺序点,这意味着程序在处理下一条语句前,赋值运算符、递增(减)运算符执行的所有修改都必须完成)
  3. 对于内置类型,采用前缀格式(++a)和后缀格式(a++)不会有差别;但于用户定义的类型,若有用户定义的递增/减运算符,则前缀格式的效率更高。
    前缀递增/递减和解除引用运算符的优先级相同,以从右到左的方式进行结合;后缀递增/减优先级相同且高于前缀运算符,从左到右结合。
    *++pt(指向下一个元素) ++*pt(将 *pt 的值加1)
    若pt指向某数组第一个元素,++pt将修改pt使之指向第二个元素。
  4. 代码块:由一对花括号和它们包含的语句组成,被视为一条语句。
  5. 逗号运算符:将两个或更多的表达式放到一个for循环表达式中;确保先计算第一个表达式,再计算下一个(逗号运算符是一个顺序点),逗号表达式的值是第二部分的值。
  6. 可以将任何有效的C++表达式用作for循环的测试条件。非零为true,零值为false
  7. 数组名是数组的地址,用引号括起的字符串常量也是其地址。

检测字符串相等或排列顺序

使用strcmp()来测试C-风格字符串是否相等(按排列顺序),该函数接受两个字符串地址作为参数(指针、字符串常量、字符数组名)

  若str1与str2相等,则表达式strcmp(str1 , str2)==0为true
  若str1与str2不相等,则表达式strcmp(str1 , str2) !=0和strcmp(str1 , str2)都为true。
  若str1(如“Zoo”)在str2(如“aviation”)的前面,则表达式strcmp(str1 , str2)<0为true。
  若str1在str2的后面,则表达式strcmp(str1 , str2)>0 为true

while循环

只有测试条件和循环体

while (test-condition)body

forwhile的差别

for循环中只有两个分号是必须的,若省略了测试表达式,将认为条件为true;在for循环中可使用初始化语句声明一个局部变量,但在while循环中不能;循环体中包括continue语句时情况会不同。

设计循环的指导原则

指定循环终止条件;在首次测试之前初始化条件;在条件被再次测试之前更新条件。

类型别名

  1. 使用预处理器
    # define BYTE char //编译时用char替换BYTE,即BYTE为char的别名
  2. 关键字typedef (更佳选择)
    typedef typeName aliasName;
    ps: typedef不会创建新类型,只是为已有的类型建立一个新名称。

编写延时循环:等待一段时间

头文件ctime:定义了一个符号常量CLOCKS_PER_SEC,该常量等于每秒钟包含的系统时间单位数,将系统时间除以这个值即得秒数。函数clock()返回程序开始执行后所用的系统时间。ctime将clock_t作为clock()返回类型的别名。可将变量声明为clock_t类型,编译器将把它转换为long、unsigned int 或适合系统的其他类型。

do while循环

格式:

do
    body
while(test-expression);

特点:出口条件循环,至少执行一次

循环和文本输入

  1. cin所属的istream类中包含一个能够满足读取输入中的下一个字符(即使是空格),并将其赋给变量ch的成员函数cin. get(ch).
    头文件iostream将cin. get(ch)的参数声明为引用类型,因此该函数可以修改其参数的值。
cin. get(name, ArSize);
cin. get( );
cin. get(ch);

函数重载允许创建多个同名函数,条件是她们的参数列表不同;允许对多个相关的函数使用相同的名称,这些函数以不同方式或针对不同类型执行相同的基本任务。
2. 检测文件尾(EOF,通常为-1) Ctrl + z—模拟的EOF
cin. clear()可清除EOF标记使输入继续进行
在有些系统中,按Ctrl + z实际上将结束输入和输出,而cin. clear()将无法恢复输入和输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhugenmi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值