C++之循环……,包括for循环与while循环、break与continue、读取数字的循环。
For循环与二维数组
1 |
|
结果如下:
练习1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using namespace std;
int main(void)
{
int row;
cout<<"Please enter the number of rows:";
cin>>row;
for(int i=0;i<row;i++)
{
for(int j=0;j<row-i-1;j++)
cout<<".";
for(int j=0;j<=i;j++)
cout<<"*";
cout<<endl;
}
return 0;
}结果如下:
While循环
1 |
|
Break与Continue
- break是退出当前循环
- Continue是回到循环开始处继续执行
- 在for循环中,continue语句使程序直接跳到更新表达式处,即下面程序中的i++处
- 对于while循环,continue语句直接跳转到判断表达式处,即下面程序中i<name.size()处
1 |
|
结果如下:
读取数字的循环
若用户输入的类型与定义的类型不匹配,那么cin对象中的一个错误标记将被设置,对cin方法的调用将返回false
1
2
3
4
5
6
7
8
9
10
11
12
13
using namespace std;
int main(void)
{
int data;
while(cin>>data)
{
cout<<"right!"<<endl;
}
cout<<"wrong!"<<endl;
return 0;
}结果如下:
当程序发现用户输入错误内容想跳过重新输入时,应采取3个步骤
cin.clear()
重置cin的错误标记位while(cin.get()!='\n');
删除错误输入- 提示用户再输入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using namespace std;
const int Max=5;
int main(void)
{
int golf[Max];
cout<<"Please enter your golf scores."<<endl;
cout<<"You must enter "<<Max<<" rounds"<<endl;
for(int i=0;i<Max;i++)
{
cout<<"Round #"<<i+1<<": ";
while(!(cin>>golf[i]))
{
cin.clear();
while (cin.get()!='\n');
cout<<"Please enter a number:";
}
}
double total=0.0;
for(int i=0;i<Max;i++)
{
total+=golf[i];
}
cout<<"Average score:"<<total/Max<<endl;
return 0;
}结果如下: