if语句:
tips:每次写if-else都带上花括号,即使只有一句执行语句时。
执行图三语句后,a=0.
switch语句:
括号里的控制表达式只能是整数类型的结果,case后面的常量可以是常数,也可以是常数计算的表达式。switch的主题语句中包括了多个 case 标签,以及最多一个 default 标签。
Switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者和switch结束为止。
for语句:
for后面括号的内容分为三部分:for(初始化的动作;条件;每轮的动作)
第一部分:初始化部分,仅在进入循环前执行一次、
第二部分:条件部分,控制循环的测试或条件部分。如果计算得到的条件值为假(false),循环将终止执行;如果条件值为真(true),则执行循环体
第三部分:增加步长部分,将循环变量增加一个步长,并再次对条件求值。
for中的每一个表达式都是可以忽略的,for(;条件;) == while(条件)
for(i=0;i<n;i++),则循环的次数时n,而循环结束以后,i的值是n。循环的控制变量i(从0开始还是从1开始, i<n还是i<=n),对循环的次数,循环结束后的变量的值都有影响。
while语句:
do-while语句:
do-while 循环是 while 循环的变体。在检查while()条件是否为真之前,该循环首先会执行一次do{}之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复do-while这个循环,直至while()为假。
do-while 循环保证了至少执行do{ }内的语句一次。
tips for loops:
如果有固定次数,用for;如果必须执行一次,用do-while;其他情况用while。
break:跳出循环
continue:跳过循环这一轮剩下的语句进入下一轮
goto语句:跳出多层循环,跳到out位置。
(猜测:使用goto语句必须要return 0。因为我没加return 0,会报错。)
用法如下:(凑硬币的例子)
tips:
- 幂运算:pow(a,b):a的b次方。头文件#include<math.h>
- 做求和的程序时,记录结果的变量应该初始化为0;做求积的变量时,记录结果的变量应该初始化为1.
- rand函数以及头文件 应用
头文件:使用rand函数前,首先在程序开头预处理命令部分加上#include<stdlib.h>,其中<stdlib.h>是C中的标准库头文件,它的作用是为了对rand()函数进行引用性声明,以便在下面的程序中使用它。
实际上,rand函数产生的是伪随机数。当你调用它,它产生的数看上去是随机的,但每次执行这个程序时,这些数的顺序都会重复。这是因为rand()会用系统指定的某个数作为一个种子,而且这个数是每次开机时就指定好的,如果不通过其他方法为rand()重新指定种子,则在下次开机前该种子数都不会变。所以每次出现的随机数是一样的。这种重复性是函数rand的一个重要特点。
如果你希望在程序完成后,每次运行时产生一组不同的随机数,那么就要用到另一个标准库函数:srand函数。这个函数就可以为rand函数指定任意的种子。在生成随机数的过程中需要我们把rand和srand两个函数结合使用,这个过程称为随机化。这二个函数的工作过程如下:
a) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;用法:srand((unsigned)time(NULL));或者srand(time(0));
b) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
c) 根据需要多次调用rand(),从而不间断地得到新的随机数;
d) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果