目录
分支语句和循环语句
分支语句
if语句和switch语句
我们先来看一下,什么是语句。
#include"stdio.h"
int main()
{
int a;
int b;//用分号隔开来的就是语句
}
这样我们先把if语句的几种形式总结;、
单个if语句:
if
{
printf("");
}
if和else同时出现;
if
{
printf("");
}
else
{
printf("");
}
if和if else
if
{
printf("");
}
if else
{
printf("");
}
else
{
printf("");//语句依次执行。
}
还有一种为内嵌式if语句;
if(满足的条件)
{
if
{
printf("");
}
else
{
printf("");
}
}
下面来的有关if语句的经典例子
#include"stdio.h"
int main()
{
int m = 5;
if (m++ > 5)
printf ("%d\n", m);
else
printf ("%d\n", m--);
}
大家可以猜一下,答案是多少 5, 6 ,4
答案是6,得到答案之后,其实这道题还没有完。
下面我们先来明确一个概念,i++是先赋值,再自增1,++i是先自增1,再赋值。
在if中的时候if是5,所以不满足条件,跳出if之后,i等于6自增1,所以满足之前的先赋值,再自增1,进入else 输出i =6;这个时候还没有完,执行完printf语句之后,i再自减1,i为5.
这里我还是再强调一句,输出为6.
如果–i的话就是5
swtich语句
有break时
#include"stdio.h"
int main()
{
int day = 0;
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;\\为停止执行下面的语句
}
}
无break时,就会发生改变,使在case中依次循环一遍。
#include"stdio.h"
int main()
{
int i = 10;
switch (i)
{
case 9:i += 1;
case 10:i--;
case 11:i *= 3;
case 12:++i;
printf("%d\n", i);
}
}
由于没有break结束语句,将从case10执行到case12;穿透swtich语句;
循环语句
首先咱们先来看下while语句的
运用
#include"stdio.h"
int main()
{
int i = 0;
while(i<=10)
{
if (i == 5)
break;
printf("%d\n", i);
}
}
大家觉得会输出什么数字0,1,2,3,4,;还是0,1,2,3,4,5;
是0,1,2,3,4;因为break;是一个跳出这个下面语句;表示不再执行;
break
是用于
永久
终止循环的。
#include"stdio.h"
int main()
{
int i = 0;
while(i<=10)
{
if (i == 5)
continue;
printf("%d\n", i);
i = i + 1;
}
}
你们觉得这个会是多少 ,在告诉答案之前,我先告诉你continue是中止本次循环,也可这么理解吧,不表达5.那么输出的数字是0,1,2,3,4,5,6,7,7,8,9,10吗?显示不是,因为到5之后就不会向下走了,一直就会,在其中死循环中。这样改之后就会,发生改变。
#include"stdio.h"
int main()
{
int i = 0;
while (i <= 10)
{
i = i + 1;
if(i==5)
continue;
printf("%d\n", i);
}
}
这个就不会,当到达5时就会停止本次以下循环,跳到i=i+1;中,说明continue是停止本次循环,而不是终止循环。
for循环
for(初始;判断;调整;)
#include"stdio.h"
int main()
{
for (int i = 1; i <= 10; i++)
{
printf("%d\n", i);
}
}//如果不理解的话,可以调试一下。
现在
while
循环中依然存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离
较远,这样查找修改就不够集中和方便。所以,for循环的风格更胜一筹。
这里就展示一个for循环代码就可。
#include"stdio.h"
int main()
{
for (int i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d\n", i);
}
}
下面看一些for循环的变种
第一种
#include"stdio.h"
int main()
{
int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("hehe\n");
}
}
第二种可以称之为死循环,无法跳出循环,因为无判断判断条件,
#include"stdio.h"
int main()
{
for (;;)
{
printf("hehe\n");
}
}
下面来看一道面试题。
#include"stdio.h"
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; k++, i++)
{
k++;
}
}
他们没有循环。
do while 循环
#include <stdio.h>
int main()
{
int i = 10;
do
{
if (i == 5)
continue;
printf("%d\n", i);
} while (i < 10);
return 0;
}
大致于,while差不多