概述
在第十篇中我们了解过"如果里的如果",是利用if…else…语句的嵌套来描述多分支的情况,那么for语句的循环嵌套是怎样的一种情况呢?我们来做个for语句循环嵌套示例:
#include "iostream.h"
int main ()
{
int number;
for(int i=0;i<=3;i++)
{
for(int j=0;j<9;j++)
{
number = i*10+j;
cout << number <
}
cout <
}
return 0;
}
代码分析;根据运行结果,我们知道这段程序能够输出0~39这些整数。虽然使用一个for语句也能实现这个效果,但是它们的原理是不同的,
我们把最先遇到的循环称为外循环,后遇到的循环语句称为内循环。如果你还对for语句嵌套的运行方法不能理解,那么我们可以找出一个生活中的例子。我们都知道,时钟运行的方式:分钟走一圈,时钟走一大格,分钟走12圈,时钟走1圈,在for语句的嵌套中,内循环就像分钟,而外循环就像时钟,它走的很慢,要等内循环执行完它才执行一次。
看了上面程序运行的结果,你可能会觉得输出的数字不太整齐。第一行的位子都挤在了一起,而第二行开始的两位数都是整整齐齐的。那么,我们有什么办法能让它们排整齐?大家自然就先想到了空格。不过,如果就为了这个简单的功能,还要判断一下这个数是几位的,要加几个空格之类的就麻烦了。其实c++早已经为我们准备了更方便的方法,这种方法就是设置宽域宽。
所谓域宽,就是输出的内容(字符与数字等)需要占据多少个字符位子,如果位置有空余则会自动补足。如果我们要设置域宽为2,那么当输入一位数1的时候输出的就是" 1",即在1的前面加了一个空格。空格和数字1正好一共占用了两个字符的位置。
那如果我们不想在1前面补上空格,而是希望在1前面补上0,是否可以?当然也是可以的。我们可以设置填充字符,如果把0设置为填充字符,那么1的前面就补上0了。
设置域宽的具体语法为:
cout<< setw( int n) <
设置填充字符串的具体语法是:
cout<< setfill(char n)<
我们在设置域宽和填充字符的时候需要注意以下几点。
(1)设置域宽的时候应该填入整数,设置填充字符的时候应该填入字符。
(2)我们可以对一个要输出的内容同时设置域宽和填充字符,但是设置好的属性仅对下一个输出的内容有效,之后输出的要再次设置。
(3)setw和setfill被称为输出控制符,使用时需要在程序开头写上#include “iomanip.h”
下面我们来做个示例,用循环嵌套输出一个图案:
#include "iostream.h"
#include "iomanip.h"
int main ()
{
int a,b;
cout <
cin >>a >>b;
for(int i=0;i<=a;i++)
{
for(int j=0;j
{
cout << setw(2) <
}
cout <
}
return 0;
}
本篇完!喜欢的朋友可以收藏与转发,欢迎大家在下方评论留言,下一篇《Do循环与While循环》
最后
以上就是大力糖豆为你收集整理的for循环里面嵌套if_C++入门到精通(十七)for循环嵌套与域宽设置的全部内容,希望文章能够帮你解决for循环里面嵌套if_C++入门到精通(十七)for循环嵌套与域宽设置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复