循环和关系表达式

一、for循环
1.在引入bool类型之前,关系表达式为ture;被判定为1;如果为false,被判定为0。

2.函数cout.setf():设置了一个标记。该标记命令cout显示ture和false,而不是1和0。
函数参数为cout.setf(ios_base::boolalpha),但在老式C++可能要求使用ios:boolalpha。

3。不可以把for循环赋给变量**
1LL:缩写——long long
前缀效率更高!!!

4.复合语句:在语句块定义一个新的变量,则仅当程序执行在该语句块中的语句时,该变量存在。执行完该语句块后,变量将被释放。变量只在语句块中有用

5.在所有运算符中,逗号的优先级别最低。
eg: cats = (17,67); //cats值为67

6.C-风格字符串的比较
如果word为数组名:
word = “mate”;
注意:数组名是数组的地址。用括号括起来的字符串常量也是其地址。由于C++将C-风格字符串视为地址,则用关系运算符来比较它们,无法得到满意的结果。
因此,应使用C-风格字符串库中的strcmp()函数来进行比较。该函数接收两个字符串地址作为参数。意味着参数可以为指针、字符串常量、字符数组名。如果两个字符串相同,该函数返回“0”;如果第一个字符串按字母排在第二个字符串之前,则strcmp()返回一个负数值;如果第一个字符串按顺序排在第二个字符串之后,则strcmp()返回一个正数值。

7.string类字符串的比较:可以使用关系运算符。因为类函数重载(重新定义)了这些运算符。

二。while循环
1.编写延时循环:延时循环 clock()函数,返回程序开始执行所用的系统时间.
*注意:返回时间单位不一定是秒其次返回类型在某些系统上可能是long,在另一些系统则可能为unsigned long或其他类型。
clock()函数头文件 ctime : 1.定义一个符号常量——CLOCKS_PER_SEC,该常量为每秒包含的系统时间。
2.ctime将 clock_t 作为clock()返回类型的别名。

//waiting.cpp-----using clock() in a time-delay loop

#include<iostream>
#include<ctime>     //describes clock() function, clock_t type

using namespace std;

int main()
{
    cout<<"please input the delay time, in seconds: "<<endl;
    float secs;
    cin>>secs;
    clock_t delay=secs * CLOCKS_PER_SEC;    //得到以系统时间为单位的时间,    CLOCKS_PER_SEC---符号常量。
    cout<<"starting\a\n";
    clock_t start=clock();  //返回系统时间。
    while(clock()-start<delay)
        ;

    return 0;

2.类型别名
C++类型别名建立有两种方式。
一种为是用预处理器:
#define BYTE char
二种方法使用C++(和C)的关键字typedef来创建别名。
通用格式:typedef typeName aliasName;
typedef char byte;
指针的别名 :typedef char * byte_pointer; //pointer to char type
也可以使用#define:
#define float_pointer float *
float_pointer pa,pb;
但预处理器置换该声明转换值为这样:
float *pa,pb; //pa a pointer to float,pb just a float
注意:typedef不会创建新类型,而只是为已有的类型建立一个新名称,word为int的别名,则cout把word类型值视为int类型!!!

三。do while循环

四.基于范围的for循环(C++11)
基于范围(rang-based)的for循环,简化了一种常见的循环任务:对数组(或容器类,如vector和array)每个元素执行相同的操作。举例如下:
double prices[5] = {4.99,12.56,14.23,13.56,56.23};
for(double x : prices)
cout<< x <

#include<iostream>

using namespace std;

int main()
{
    char ch;
    int count=0;
    cin.get(ch);
    while(cin.fail()==false)    //test for EOF
    {
        cout<<ch;
        ++count;
        cin.get(ch);
    }

    cout<<count<<" character read!"<<endl;
    return 0;
}

3>EOF结束输入
cin.clear()方法可能清除EOF标记,使输入继续进行。
在以后介绍的!运算符可以将ture切换为false,也可反向切换。
则:
while(cin.fail()==false)可改为 while(!cin.fail())
由于cin.get(char)返回一个cin对象。然而istream类可将istream对象(如cin)转换为bool值的函数;当出现需要bool值的地方(如while循环中),该函数将被调用。则可将上述while测试改为:
while(cin)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值