控制流(判断语句)

二路分支

  • 逻辑:程序中某段代码需要在满足某个条件时才能运行
  • 形式:
    1. if 语句:表达一种 如果-则 的条件执行关系(可以没有else)
    2. if-else 语句:表达一种 如果-否则 的互斥分支关系
//if-else 语句
if(a%2 == 0) // if(表达式) 如果表达式为真,则执行输出语句“a是偶数”
{
    printf("a是偶数\n");
}
else // 否则执行输出语句“a是奇数”
{
    printf("a是奇数\n");
}

 多路分支

  • 辑:根据不同的条件执行不同的代码片段
  1. switch(n) 语句中的 n 必须是一个整型表达式,即 switch 判断的数据必须是整型
  2. case 语句只能带整型常量,包括普通整型或字符,不包括 const 型数据。
  3. break 语句的作用是跳出整个 swtich 结构,没有 break 程序会略过case往下执行
  4. default 语句不是必须的,一般放在最后面(因此不需要 break)
switch(n) // switch(表达式) 该表达式只能为整形、、、可查看数据类文章
{
case 1: 
    printf("one\n");
    break;

case 2:
    printf("two\n");
    break;
  
case 3:
    printf("three\n");
    break;
  
default:
    printf("其他数字\n");
}

 const

  • 逻辑:使一个变量不可修改
  • 作用:
    • 修饰普通变量,使之不可修改
    • 修饰指针变量,使之不可修改或者使其指向的目标不可修改,点击查看详情
int const a = 100; // 定义了一个不可修改的变量a
const int b = 200; // 定义了一个不可修改的变量b

a = 101; // 错误
b = 202; // 错误

while与 do…while循环

  • 逻辑:使得程序中每一段代码可以重复循环地运行
  • 形式:
    • while 循环:先判断,再循环
    • do-while 循环:先循环,再判断

while循环 

  • 语法点:
    • while 循环先进行判断,条件为真后才执行循环体,因此循环体可能一遍也不执行。
    • do-while 循环先执行循环体,再进行判断,因此循环体至少会执行一遍。
    • do-while 循环中的 while 语句后面有分号;

// 循环输出一系列整数,直到100为止
int a;
scanf("%d", &a);
while(a <= 100)
{
    printf("%d\n", a);
    a++;
}
do-while 循环

  • 语法点:
    • while 循环先进行判断,条件为真后才执行循环体,因此循环体可能一遍也不执行。
    • do-while 循环先执行循环体,再进行判断,因此循环体至少会执行一遍。
    • do-while 循环中的 while 语句后面有分号;

// 循环输出一系列整数,直到100为止
int a;
scanf("%d", &a);
do
{
    printf("%d\n", a);
    a++;
}while(a <= 100);

for循环

  • 逻辑:与 while 循环类似,但更加紧凑,for 循环将控制循环的变量集中在一行
  • 语法点:
    • 循环头的标准语法是: for(表达式1 ; 表达式2 ; 表达式3)
    • 表达式1一般用来初始化循环控制变量
    • 表达式2一般用来作为循环判定条件,为真则进入循环,为假则跳出循环
    • 表达式3一般用来更新循环控制变量
    • 三个表达式均可以省略,但分号不能省略
// 循环输出一系列整数,直到100为止
int a;
for(a=30; a<=100; a++)
{
    printf("%d\n", a);
}

 break与continue

  • 逻辑:
    • break:① 跳出 switch 语句; ② 跳出当层循环体
    • continue:结束当次循环,进入下次循环
switch(n)
{
case 1:
    printf("one\n");
    break;  // 跳出 switch 语句
case 2:
    printf("two\n");
    break;        
}

while(1)
{
    int n = scanf("%d", &a);
    if(n == 0)
        break; // 跳出当层 while 循环体
}

for(int i=1; i<=100; i++)
{
    if(i%7 == 0)
        continue; // 跳过所有能被7整除的数
     
    printf("%d\n", i);       
}

 goto语句

  • 逻辑:无条件跳转
  • 语法:

    • goto语句直接跳转到本代码块中的标签处
    • 标签指的是以冒号结尾的标识符
  • 作用:

    • goto语句的无条件跳转不利于程序的可读性,一般不建议使用
    • goto语句常被用在程序的错误处理中
int main()
{
    printf("%d\n", __LINE__); // 打印第3行 
    
    // 无条件跳转到label处 
    goto label;
    printf("%d\n", __LINE__); // 打印第7行,此处被略过
label:  
    printf("%d\n", __LINE__); // 打印第9行
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值