您的位置:首页 > 编程语言 > C语言/C++

C/C++/Java for语句规范写法浅析(二重及以上循环)

2009-10-15 09:03 651 查看
举个简单例子:用二重循环输出1-100 数字;

当然我这里是举例子针对二重及以上的循环,
完全可以使用单循环,于是便飞快的完成了以下

代码:

如下就用C/C++举例。

C++代码(VS2008):

#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int i = 0;

int j = 0;

int count = 0;

cout<<"Run Result:"<< endl;

for (;i<10;i++)

{

for (;j<10;j++)

{

count++;

cout<< "/t"<< count<<endl;

}

}

return 0;

}

Run Result:

1

2

3

4

5

6

7

8

9

10

观察运行结果并非是我们预想结果,经过分析调试最后明白:

i执行 i=0时,内循环j(j=0~10)内循环结束j=10内循环;

i = 1时,j=10;内循环被处理不再执行,直到i=10;退出循环模块,程序结束;

所以问题的关键就是内循环只有在i=0时,j=10时被执行;所以应当在每次外循环

开始或者每次内循环结束之时将内循环值清0;

C++正确代码:

#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int i = 0;

int j = 0;

int count = 0;

cout<<"Run Result:"<< endl;

for (i=0;i<10;i++)

{

for
(

j=0
; j<10; j++)//解决location1

{

count++;

cout<<"cout: " <<count <<endl;

}

cout<<"i= "<< i<< "j= "<< j<< endl;

//j = 0;//

//解决location2

}

return 0;

}

Run Result:

cout: 1

cout: 2

cout: 3

cout: 4

cout: 5

cout: 6

cout: 7

cout: 8

cout: 9

cout: 10

i= 0j= 10

cout: 11

cout: 12

cout: 13

cout: 14

cout: 15

cout: 16

cout: 17

cout: 18

cout: 19

cout: 20

i= 1j= 10

cout: 21

cout: 22

cout: 23

cout: 24

cout: 25

cout: 26

cout: 27

cout: 28

cout: 29

cout: 30

i= 2j= 10

cout: 31

cout: 32

cout: 33

cout: 34

cout: 35

cout: 36

cout: 37

cout: 38

cout: 39

cout: 40

i= 3j= 10

cout: 41

cout: 42

cout: 43

cout: 44

cout: 45

cout: 46

cout: 47

cout: 48

cout: 49

cout: 50

i= 4j= 10

cout: 51

cout: 52

cout: 53

cout: 54

cout: 55

cout: 56

cout: 57

cout: 58

cout: 59

cout: 60

i= 5j= 10

cout: 61

cout: 62

cout: 63

cout: 64

cout: 65

cout: 66

cout: 67

cout: 68

cout: 69

cout: 70

i= 6j= 10

cout: 71

cout: 72

cout: 73

cout: 74

cout: 75

cout: 76

cout: 77

cout: 78

cout: 79

cout: 80

i= 7j= 10

cout: 81

cout: 82

cout: 83

cout: 84

cout: 85

cout: 86

cout: 87

cout: 88

cout: 89

cout: 90

i= 8j= 10

cout: 91

cout: 92

cout: 93

cout: 94

cout: 95

cout: 96

cout: 97

cout: 98

cout: 99

cout: 100

i= 9j= 10

结果正确!

所以在做for双重循环时候,最好不要先麻烦省掉第一个分号前面的域,虽然那样完全符合语

法,不要为了那几Byte空间和时间将其省去,这样会给带来很多不必要的麻烦,或者
让你

花常时间来调试,严重影响你工作的效率,所以作为优秀的程序员应该养成良好编写代码习

惯和风格,你会因此而收益良多。

就此打住,小弟也是偶遇此问题,特写成文章,供大家参考,如有错误请多指教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: