for while循环和关系表达式

循环和关系表达式

            目录

  • 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使之指向第二个元素。

        (1)代码块:由一对花括号和它们包含的语句组成,被视为一条语句。

        (2)逗号运算符:将两个或更多的表达式放到一个for循环表达式中;确保先计算第一个表达式,再计算下一个(逗号运算符是一个顺序点),逗号表达式的值是第二部分的值。

        (3)可以将任何有效的C++表达式用作for循环的测试条件。非零为true,零值为false

        (4)数组名是数组的地址,用引号括起的字符串常量也是其地址。

        (5)检测字符串相等或排列顺序:

       使用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循环

        1.只有测试条件和循环体

   while (test-condition)

         body

        2.for与while的差别

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

        3.设计循环的指导原则:指定循环终止条件;在首次测试之前初始化条件;在条件被再次测试之前更新条件。

        4.类型别名

        (1)使用预处理器

#define BYTE char //编译时用char替换BYTE,即BYTE为char的别名

        (2)关键字typedef (更佳选择)

           typedef typeName aliasName;

        ps: typedef不会创建新类型,只是为已有的类型建立一个新名称。

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

头文件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( )将无法恢复输入和输出。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhugenmi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值