我是靠谱客的博主 大力糖豆,最近开发中收集的这篇文章主要介绍for循环里面嵌套if_C++入门到精通(十七)for循环嵌套与域宽设置,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在第十篇中我们了解过"如果里的如果",是利用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;

}

7f19fea579cd2fce915b7d20bfa9d52e.png

代码分析;根据运行结果,我们知道这段程序能够输出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;

}

201c9bcbcdbd72fd0c37d0d0b6680cba.png

本篇完!喜欢的朋友可以收藏与转发,欢迎大家在下方评论留言,下一篇《Do循环与While循环》

最后

以上就是大力糖豆为你收集整理的for循环里面嵌套if_C++入门到精通(十七)for循环嵌套与域宽设置的全部内容,希望文章能够帮你解决for循环里面嵌套if_C++入门到精通(十七)for循环嵌套与域宽设置所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部