一.近期学习总结
1.for语句
for(表达式A;表达式B;表达式C)
{
要重复执行的代码块D;
}
①表达式A先执行,且只执行一次
②表达式B再执行,如果为真则执行代码块D
③再执行表达式C,再选择表达式B,回到第2步
e.g. for(int i=1;i<=n;i++)
2.while语句
while(表达式A)
{
循环体B;
}
①程序先判断A是否为真,如果为真则执行循环体B
②当执行完循环体后再回到第1步
③当A不成立时结束循环
3.do-while
do
{
语句序列
}while(循环控制表达式)
①执行循环体中的语句
②计算循环控制表达式的值
③如果循环控制表达式值为真,返回步骤①
④如果循环控制表达式的值为假,退出循环。
注意:do-while语句是可以被其他循环语句替换的,不经常使用。
4.break
在for,while,do-while,switch中遇到break跳出当前循环。
e.g.for(i=1;i<=5;i++)
{
if(i%2==0)
{
break; //结束当前循环
}
5.循环嵌套
一个循环语句放在另一个循环语句的循环体中构成的循环。
e.g.在画矩形时,第一行for循环控制行,第二行控制列。
6.应注意的问题
①局部变量:在循环体内定义的变量,只可在循环体中使用。
②赋初值最好放在循环语句之前,紧挨着循环语句。
③i也可一次加2。可表示为:for(int i=1;i<=n;i+=2)
④for括号内有且只有两个;
⑤for语句可以用while语句等价实现。
for(初始化表达式;循环控制表达式;增值表达式)
{
语句序列
}
等价于以下
初始表达式;
while(循环控制表达式)
{
语句序列
增值表达式;
}
二.应用
循环这一章中,很多题目是可以归类的。
其中包括以下几类:
①画图形问题以及金币问题。这类题目主要运用循环嵌套来解决。
画图时第一行循环代表行,第二行循环代表列;
金币问题中第一行循环代表金币,第二行循环代表连续的天数。
②分离整数的各个数。
这类问题可用while语句来解决。
e.g.while(n!=0)
{
cout<<n%10<<" ";
n=n/10;
}
③求评论年龄,求和,余数相同问题等可以用for语句解决。
特别地,算平均年龄时要注意保留小数点后几位,有时需要定义double.
④在遇到津津的储存计划时明显感觉很慌乱,不知道从哪下手,其实仔细分析以后发现,就是利用for语句以及if语句相结合的形式,仔细分析整个过程,钱不够了就输出相应月份,剩余的钱大于一百要存多少在妈妈那里,以及最后妈妈将津津平时存的钱加上百分之二十还给津津。
三.近期感受
在学习循环问题时,明显感觉难度提升了,在做这类问题时需要逻辑条理清晰,很多很长的题目,需要先分析透彻,然后考虑如何用代码来表示。
最初接触循环问题的时候,感觉十分繁琐不适应,面对for语句,while语句,do-while语句等不知该如何选择。后来慢慢熟悉中,才开始有了点感觉,相应的把问题归了下类,发现循环问题一共可分为哪几类,并没有想象中那么繁琐那么困难,仔细分析后也是可以解决的,实在没有思路,可以问问同学是怎么想的,理清楚思路之后,再自己写代码。
感觉学习这门新的语言时,有些吃力,再遇到新的问题,新的解决思路的时候,接受的速度还是比较慢的。个人感觉打代码一次性打很多效果是不太大的,不如每天一点,在每天的循环记忆中来不断深刻,一步步积累,慢慢在熟悉中逐渐掌握吧。