#include<iostream>
#include<string>
#include<ctime>//ctime头文件提供了时间函数,CLOCKS_PER_SEC表示的是系统时间单位数,用系统时间除以这个数得到秒数
//ctime将clock_t作为clock()返回类型的别名
using namespace std;
typedef char byte;//利用typedef声明创建别名,define也行,但最好用typedef
#define byte_potin char*;
typedef char* byte_potine;//typedef不会创建新类型,而是创建一个新名称
int main()
{
//for循环
int i;
for (i = 0; i < 5; i++)//(变量初始化;循环判断式;后变量预处理;)
cout << "ok,yes666!";//++为递增运算符;c++将结果强制转化为bool类型
int x;
cout << (x = 100) << endl;//这里要十分注意 << 输出运算符的优先级比关系运算符和赋值运算符高!
cout << (x < 3);
//使用for循环访问字符数组
string word;
cin >> word;
for (int j = word.size() - 1; j >= 0; j--)//使用了类函数.size()
cout << word[j];
int* pn = new int;
int pq = *++pn;//这两个递增运算符的使用表达的含义不同
pq = ++ * pn;//第一个是改变指针位置;第二个是先解引用在递增
//逗号运算符
int k;
i++, k++;//逗号运算符允许将两个表达式放在一个表达式的地方,顺序执行
//注意逗号表达式的值是第二部分的值,逗号运算符的优先级最低
//关系运算符的优先级比算术运算符低
string word = "?ate";
for (char ch = 'a'; word != "mate"; ch++)//这里用到了string类的重载运算符!=
{//使得能在至少有一个操作数为string类对象,另一个可以是string类对象,也可以是普通字符串
cout << word << endl;
word[0] = ch;//修改整个字符串
}
//while循环————没有初始化和更新部分,只有测试条件和循环体
while (i != 0)//c++中for和while循环本质是一样的
{
i--;
}//注意string对象不使用空字符标记字符串末尾
//不知道要循环多少次时用while()
//do while循环————出口循环————至少循环一次
int n;
do
{
cin >> n;//请求输入一般会用do while
if (n == 4)
break;//break语句终止循环
} while (n != 7);
//基于范围的for循环——c++11
double prices[5] = { 1.01,2.32,6.23,4.52,2.04 };
for (double x : prices)//简化对数组、容器类的循环
cout << x << endl;
for (double& x : prices)//要修改数组的元素,x是一个引用变量
x = x * 0.5;
for (int x : {3, 5, 2, 8, 6})//还可以结合初始化列表一起使用
cout << x << endl;
//循环和文本输入
char ch;
int count = 0;
cin >> ch;//原始的cin输入
while (ch != '#')//#字符称为哨兵字符,作为停止标记
{
cout << ch;
++count;
cin >> ch;//cin将忽略空格和换行符,这体现输入就像一条流一样
//发送给cin的输入被缓存,这表明只有按下回车键,内容才会发送给cin
}
//使用cin.get(char)进行补救
while (ch != '#')
{
cout << ch;
++count;
cin.get(ch);//能读取空格、换行符等不同字符————注意输入仍被缓冲
}
//函数的重载——允许创建多个同名函数,条件是它们参数列表不同
int ch1;
char a[10];
cin.get(a, 10);//两个参数
cin.get(ch);//一个参数
ch1=cin.get();//没有参数——返回输入的下一个字符,将字符编码作int值返回
cout.put(ch1);//显示字符对象——传递的是整型,而不是字符型
//嵌套循环和二维数组————数据行和数据列
int maxtemps[4][5] = {//初始化格式————双花括号
{63,20,14,85,63},//4行5列
{54,65,98,87,32},
{14,25,36,47,58},
{74,85,96,41,52}
};
const char* citise[5] = //c++常用做法:将一个指针数组初始化为一组字符串常量
{
"cihojlj",//字符串相当与地址
"saladjf",
"slfjioe",//注意这里可以替换为string对象数组
"e9nflaa",
"weoufhf"
};
//在输出中使用制表符‘\t’比使用空格可是数据排列更有规律!!!
}
c++学习5、循环和关系表达式
最新推荐文章于 2024-09-27 19:35:53 发布