1、所谓的顺序结构,就是从上至下,从前至后的执行,也就是说,如果执行到下面的代码了,那么上面的代码肯定就已经执行结束了。
例如:
int *tep ;
int height = 100;
tep = &height;
int width = 200;
tep = &width; //执行到这的时候,上述对tep的操作就结束了,可以继续对tep赋值。
上述的代码与写在while循环里的情况类似,如下所示
int *tep ;
while(1)
{
tep = new int;
*tep = 100;
}
例如:
int ret ;
ret = func1();
if(ret == -1)
cout << “func1出错了”<<endl;
ret = func2(); //ret变量进行重新赋值,重新初始化
if(ret == -1)
cout << “func2出错了”<<endl;
小结:
程序中定义了一个变量,当变量值不再使用的时候,可以对变量进行重新初始化,这样只用一个变量就可以,既减少了内存空间的使用,程序代码显得也很简洁(比如上述的ret两次都是用来表示函数返回值,且第一次用完后,变量功能已经结束了,此时就可以重新初始化使用)。
2、条件结构
条件结构是if-else组成;if和else两条语句是并列的,关系对等,满足条件执行语句1,不满足条件执行语句2;也就是说两条语句不能同时执行;只能执行一条语句。(同样如果是多个if-else的嵌套,每一条带语句的if/else也都是并列的,即每一次只能执行某一个if或else,这个可以通过画流程图或者想象成switch语句来理解)
if...else 的嵌套:
if(x>=0)//错误写法
if(x>0) y =1;//此条语句需要用大括号括起来,否则就跟下面的else组成一对了。
else y = 0;
if(x>=0)
{if(x>0) y =1;}//正确写法
else y = 0;
小结:else 子句总是与前面最近的不带else的if组合组成if-else形式!
3、循环结构
循环语句与条件语句有相似的地方:满足条件执行循环体,不满足条件,执行循环体外的语句;while循环的判断条件是多次的if;
循环语句与条件语句不同的地方:满足条件执行的语句与不满足条件执行的语句二者不是并列对等的;执行完满足条件的语句会继续执行不满足条件的语句。另外,从程序框图上看,条件语句都是下箭头,开环的,而循环语句是有上箭头,即构成了一个闭环。
补充:循环结构之所以满足条件和不满足条件的语句均会执行,是因为判断了n次,即执行了n次,这n次中前n-1次是满足条件的;第n次是不满足条件的。所以,两种语句都会执行。而条件语句则是因为只执行了1次,这一次,只能是满足条件或者是不满足条件,故两种语句只能二选一。
另外,假设循环语句的判断条件只能进行判断一次,则此时的循环语句就是条件语句!!即:或者执行循环体语句,或者执行循环体外的语句。(把循环语句的上箭头转向为下箭头,跟条件语句一模一样了。)
总结:循环语句是1-n个if条件语句+一个esle的叠加。
int i=2;
while(i)
{
i--;
}
相当于
int i=2;
if(1)
i=1;
if(1)
i=0;
else//条件为0
//do sth.//while循环外的语句
如上,while 相当于多个if条件成立的情况,跳出while循环的条件相当于那个else.
ps:其实从循环结构的框图中可以看出,else后什么都没做,,,(当然也可以do sth.),所以更确切的说,对应于while循环结构其实是多个if的叠加,且是不带else的if。
并且,while条件最终的值==退出while循环的那个值。
另外,while循环中一般会用到计数变量,顾名思义,就是用来计数的,即,计数器从0开始,循环体执行一次,计数器++,计数器跟循环体是对应的。