while 语句
例子:
#include<iostream>
int main()
{
int sum = 0, val = 1;
//只要val的值小于或等于10,while循环就会持续执行
while(val <= 10)
{
sum += val;
++val;
}
std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
while (condition){
statement
}
while语句的执行过程就是检测condition条件是否为真,直到为假的时候停止。
for 语句
#include<iostream>
int main()
{
int sum = 0;
for(int val = 1; val <= 10; ++val)
{
sum += val;
}
std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
for(init-statement;condition;expression){
statement
}
while和for不同在于:
while语句在condition中检查变量的只是否为真,在循环体中修改变量的值,而for语句将condition和修改变量的过程都放在了循环头()中
if 语句
例子:
#include<iostream>
int main()
{
int sum = 0;
for(int val = 1; val <= 10; ++val)
{
//添加if语句
if( val <= 5)
{
sum += val;
}
}
std::cout << "sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
if(condition){
statement
}
for循环和上面例子不同的是,只对小于等于5的数字进行操作。
1.读取数量不定的输入数据
#include<iostream>
int main()
{
int sum=0,value=0;
while(std::cin>>value)
{
sum+=value;
}
std::cout<<"Sum is"<<sum<<std::endl;
return 0;
}
2.统计连续出现的值的次数
针对课后习题1.18,我的程序:
#include <iostream>
int main()
{
int times=0,value=0,val=0;
while(std::cin>>value)
{
int cur_times=1;
while (std::cin>>val)
if (val==value){
cur_times++;
}
std::cout<<value<<"occurs"<<cur_times<<"times"<<std::endl;
}
return 0;
}
程序运行无错,问题在于输出时,只能得到出现次数大于1的,因为没有考虑只出现一次的情况。
例子答案如下:
#include<iostream>
int main()
{
//currval是我们正在统计的数;我们将读入的新值存入val
int currval = 0, val = 0;
//读取第一个数,并确保确实有数据可以处理
if(std::cin >> currval)
{
int cnt = 1;//记录当前数值出现的次数
while(std::cin >> val) //读取剩余的输入
{
if( val == currval) //如果值相同,则计数加1
{
++cnt;
}
else //否则当前统计结束,打印结果
{
std::cout << currval << " occurs "
<< cnt << " times" << std::endl;
currval = val; //记住新值
cnt = 1; //重置计数
}
}
//打印最后一个数值的个数
std::cout << currval << " occurs " << cnt << " times" << std::endl;
}
return 0;
}
第一审题不清,是 连续 出现的次数,其次对于cin的运用,while中存入的是除去第一位剩余的数(?)
类简介
类(class):数据结构
一个类定义了一个类型以及相关联的一组操作。
第一章完。
大概看了三天,中间回了家,继续坚持!