C学习笔记4——switch语句,循环语句

一.switch语句

switch语句,是另一种多分支选择的语句,其一般形式为

switch(表达式) {
case常量表达式1:语句1;

break;
case常量表达式2:语句2;

break;

case常量表达式n:语句n;

break;
default:语句n+1;
}

注:switch(表达式)必须是int类型的.

语义:计算表达式的值,后跳转到相匹配的case(分支标号)处,执行该分支的语句。分支后面如果没有break,则继续顺序执行到下面的case里去,直到遇到一个break.(遇break语句时,将跳出switch语句转到后续语句执行)。如果表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
注意:①为了跳出switch语句,需在switch语句后加一个break语句(只有关键字break,没有参数)。②在case后的各常量表达式的值不能相同,否则会出现错误。③在case后,允许有多个语句,可以不用{ }括起来

二.循环语句

2.1while语句

一般形式为

while(表达式) 语句[;]

其中表达式是循环条件,语句是循环体

一个while循环的意思是:当条件满足时,不断地重复循环体内的语句。条件成立是循环继续的条件。条件不成立就不执行该循环。

举例,数位数的算法

#include<stdio.h>
int main()
    int x;
    int n=0;
    scanf_s("%d",&x);
    n++;
    x/=10;
    while(x>0){
        n++;
        x/=10;
    }
    printf("%d\n",n);

其中,为了不用直接启动debug,依然可以看出程序里循环中的变量是怎样变化的,调试还有两种手段,一种是在纸上用笔分别列出结果,另一种是在程序适当的地方插入printf来输出变量的内容,例如

while(x>0){
    n++;
    x/=10;
    printf("x=%d,n=%d\n",x,n);
}

结果如下:

 2.2do-while语句

在进入循环的时候不做检查,而在执行完一轮循环体代码后再检查条件是否满足,满足就继续循环,不满足则结束。该语句至少要执行一次循环语句。一般形式为:

do

{

        <循环体语句>

}while(<循环条件>);

例子:计算从1加到100的值

#include<stdio.h>
int main()
{
	int i, sum = 0;
	i = 1;
	do {
		sum += i;
		i++;
	} while (i <= 100);//分号不能省
	printf("%d\n", sum);
	return 0;
}

2.3for语句

一般形式为:

for(表达式1;表达式2;表达式3)语句;

表达式1是初始条件,表达式2是循环条件,表达式3是循环每一轮要做的事情

for中的每一个表达式都可以省略,但不能省。for(;表达式;)==while(表达式)

执行过程:①求解表达式1,②求解表达式2,值为真,执行后面的语句,然后求解表达式3,若值为假,则结束循环,③求解表达式3,④转回②步继续执行。

例子,求n!

#include<stdio.h>
int main()
{
	int n;
	scanf_s("%d", &n);
	int i;
	int sum = 1;
	for (i = 1; i <= n; i++)
		sum *= i;
	printf("%d!=%d\n", n, sum);
	return 0;
}

2.4跳转语句

break语句

只能能用在循环语句和switch语句中。

在循环语句中,可使程序提前终止循环而执行循环后面的语句。通常break总是与if语句连在一起,即满足条件时便跳出循环。

continue语句

作用:跳过循环体中剩余的语句而强行执行下一次循环。只用在循环体中,常与if条件语句一起使用,用来加速循环。

goto语句

是一种无条件转移语句,可用在程序的任何位置。使用格式为:

goto 语句标号;

goto依赖于定义在语句开头的标识符,其形式为:标识符:语句

执行goto语句后,跳转到标识符:语句处并执行其后的语句。两者必须同处于一个函数中。

:goto语句通常不用,它会使程序混乱且不易读。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值