注意 程序的书写他是步骤 而不是描述 关系
例子 判断数值的位数
当我们判断大于的时候 从高到低判断
但当数字很大的时候,if else的书写就会无穷无尽 那我们怎么样才能摆脱无穷无尽呢?
循环
以类似的语句 对输入的数字进行运算 通过不断/10的操作 可以不断从右边划掉数字 如352/10=35 35/10=3 不断计算下去 同时对位数进行n++实现计算 得到位数
一、while循环
区别:
if语句与while语句的区别是前者只进行一次 而后者是反复(反复多次进行判断条件是否满足)
命名while语句中的{
}
内容为循环体 循环体中要有可以脱离循环的条件 有可以改变条件的机会
否则会导致死循环
含义:
“当”他的意思就是:当条件满足时,不断重复循环体内的语句。
循环执行前判断是否继续循环 所以有可能循环一次也没执行
条件成立是循环继续的条件
注意
由于部分边缘的数据 可能导致远算结果错误 如上的例子 如果计算0的位数会直接输出为0 因为无法进入循环 因此可在循环前加上if-else 或者 补充一份运算 保证特殊数值的输出
do-while
区别在于do-while 会先进入循环体 结束之后在判断是否符合条件 要不要循环
而while是进去之前就判断是否符合条件
就导致他可能一次循环语句都不做 而do-while必然做一次
二、猜数游戏
关键:1.对于随机数进行限制 保证他在一定范围内,于是通过对他取余保证三位数
2.rand随机数的应用
3.多语句的运用
三、求平均数
得到的数据:1.sum
2.count
设置循环截止的终点 如-1
观察两种书写方式 左上使程序判断两次number是否为-1
而左侧是scanf两次 但是对于整个程序循环scanf只运行一次
四、整数求逆
1.数据的输出形式:007还是7
这决定了循环的书写
前者要求每得到一个数据就输出 则是中间被注释的部分
而后者只需要最后的结果 则在最后输出
注意ret的计算 可以在纸上运算一下
补充:
1.验证:
测试程序通常使用边界数据,如有效范围内两端的数据 特殊的倍数等
个位数 10 0 负数等
同时也可以用纸上运算
2.调试
在程序适当的位置插入printf来输出变量的内容 也要记得加//(如果参赛)
3.随机数
rand()得到一个随机整数
4.当我们学习了众多循环 一定要学会思考如何选择
标签:语句,10.21,判断,记录,学习,while,循环,输出,10 From: https://blog.csdn.net/2402_87760398/article/details/143116462