标题目录
if语句
(1)if的简单用法
-
if (表达式)
语句A;
功能: 如果表达式成立,则执行语句A,反之不执行 -
if (表达式)
语句A;
else
语句B;
功能:如果表达式成立,则执行语句A,否则执行语句B。
注意:语句A和语句B只能执行其中一个 -
if (表达式1)
语句A;
else if(表达式2)
语句B;
else
语句C;
注意:
- 语句A,语句B和语句C只能执行其中一个
- 即使表达式1 2 都成立,也只会执行语句A。因为系统识别到表达式1成立,就会执行语句A,然后直接跳到下一步
验证小例子:
#include <stdio.h>
int main (void)
{
if (5 > 2)
printf ("哈哈");
else if (4 > 2)
printf ("嘻嘻");
else
printf ("呵呵");
}
//结果:哈哈
(2)if的范围问题
1.if (表达式)
语句A;
语句B;
if只能控制语句A
2.if (表达式)
{
语句A;
语句B;
}
if能控制语句A和语句B
(3)if的常见用法(给数排序)
给数排序(擂台法):
#include <stdio.h>
int main (void)
{
int a = 1;
int b = 5;
int c = 3;
int t;
if (a < b)
{
t = a;
a = b;
b = t;
}
//上面的if语句让a,b的值交换,使a>b
if (a < c)
{
t = a;
a = c;
c = t;
}
//上面的if语句让a,c的值交换,使a>c
if (b < c)
{
t = b;
b = c;
c = t;
}
//同理,上面的if语句使b>C
printf ("%d>%d>%d", a,b,c);
}
//结果;5>3>1
for语句
(1)for循环的简单用法
for (1; 2; 3)
{
A;
}
先执行1,再判断2是否成立,若2不成立则退出循环;若2成立再依次执行语句A和3,然后再判断2是否成立,周而复始。
3执行后,是完成一次循环的标志
(2)for循环的嵌套使用
for (1; 2; 3)
for (4; 5; 6)
A;
B;
先执行1,再判断2是否成立,若2不成立,则退出整个大循环,执行B;若2成立,就执行4,再判断5是否成立,若5成立,则执行小循环。等到5不成立时,退出小循环,再执行3,然后再判断2是否成立,周而复始。
6执行后,是完成一次小循环的标志
3执行后,是完成一次大循环的标志
while语句
(1)while的简单使用
1.while循环
格式:
while()
语句;
2.do…while循环
格式:
do
{
语句;
}
while();
(2)for和while的相互转换
for(1;2;3)
A;
等价于
1;
while (2)
{
A;
3;
}
验证小例子:
#include <stdio.h>
int main (void)
{
int i;
for (i = 0; i < 2; i++)
{
printf ("语文");
}
//结果:语文语文
i = 0;
while (i < 2)
{
printf ("语文");
i++;
}
//结果:语文语文
}
(3)while与for和do…while的区别
do…while是先执行,后判断,而for和while是先判断,后执行
(4)do…while的主要运用(人机交换)
char ch;
do
{
……
printf ("你要继续吗Y/N:");
scanf (" %c",&ch);
//%c前要加空格
}
while('y' == ch || 'Y' == ch);
break语句
break用于循环时,是用来终止循环
break用于switch时,是用来终止switch
注意:
- break不能用于if,除非if作为循环的一部分
- break只能终止离它最近的switch或循环
验证小例子:
#include <stdio.h>
int main (void)
{
int i, j;
for (i = 1; i < 3; i++)
{
for (j = 2; j < 5; j++)
{
break;
printf ("haha");
}
printf ("xixi\n");
}
}
/*结果:
xixi
xixi
*/
switch语句
例子:模拟电梯
#include <stdio.h>
int main (void)
{
int i;
printf ("请输入你要去的楼数:");
scanf ("%d", &i);
switch (i)
{
case 1:
printf ("一楼开\n");
break;
case 2:
printf ("二楼开\n");
break;
case 3:
printf ("三楼开\n");
break;
default:
printf ("这层楼还没盖");
break;
}
}
switch的后面可以是表达式
但是注意:
- switch和case的后面一定是整数,若不是整数,可利用强制类型转换,如:(int(grade/10))
- default只有当case匹配失败时才会执行
- 如果case的后面不加break的话会一直执行下去,直至遇到break或switch结束为止
continue语句
作用:用来跳过循环剩余的部分,反回去执行for或while里面的语句
for (1; 2; 3)
{
A;
B;
continue;(C、D语句都会被跳过,直接执行3和2)
C;
D;
}
return语句
作用:终止被调函数,向主调函数返回表达式的值,若表达式为空,则只终止该函数
int f()//int表示只能向主调函数返回整型数值
{
return 10; //终止该函数,并向主调函数返回10
}
void f() //void表示无返回值
{
return; //终止该函数
}
goto语句
被称为无条件转移语句
作用:能强制中断goto语句后面的一些语句,并直接跳到后面带冒号的标签语句
验证小例子1:
#include <stdio.h>
int main (void)
{
goto loop;
printf ("哈哈");
loop:printf ("嘻嘻");
}
//结果:嘻嘻
验证小例子2(从1加到100):
#include <stdio.h>
int main (void)
{
int i = 0, sum = 0;
loop:
if (i < 100)
{
i++;
sum = sum + i;
goto loop;
}
printf ("%d", sum);
}