C语言——分支和循环语句

语句:c语言中由一个;号隔开的就是一条语句


分支语句

if语句

表达式为真,语句执行

语法结构

//单语句执行
if(表达式)
    语句;

//分支语句
if(表达式)
    语句;
else
    语句;

//多分支语句
if(表达式)
    语句;
else if(表达式)
    语句;
...
else
    语句;

语句块

{

语句;

...

}

示例

#include<stdio.h>
int main()
{
    int num = 10;
    if(num%2 == 0)
    {
         printf("%d是偶数\n",num);
    }
    else
    {
         printf("%d是奇数\n",num);
    }       
    return 0;
}

规范书写格式,避免程序错误

#include<stdio.h>
int main()
{
    int a=0;
    int b=2;
    if(a==1)
    	if(b==2)                //          <-
     		printf("heihei\n");
    else                       //与那个if匹配?
    	printf("wawa\n");
     return 0;
}

规范书写格式,避免程序错误

switch语句

语法结构

switch(整型表达式)
{
    case 整型常量表达式:
            语句;
    ...
    case 整型常量表达式:
            语句;
    default:
            语句;
}

break:在switch语句中无法直接实现分支,需要借助break实现;

default:当switch表达式的值不匹配所有case标签的值时,执行default;

        每个switch语句只能有一个default子句

        可以出现在任何case标签可以出现的位置

示例 

#include<stdio.h>
int main()
{
    int day = 0;
    switch (day)
    {                                                  
        case 1:                                      
            printf("周一\n");                            
            break;                                       
        case 2:
            printf("周二\n");
            break;
         case 3:
            printf("周三\n");
            break;
         case 4:
            printf("周四\n");
            break;
         case 5:
            printf("周五\n");
            break;
         case 6:
            printf("周六\n");
            break;
         case 7:
            printf("周日\n");
            break;

        /* 当day为 1 2 3 4 5 时打印上学,6 7时打印睡觉
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("上学!\n");
        case 6:
        case 7:
            printf("睡觉!");
        */
        default :
            printf("一周只有七天!想多上课?\n");
            break;
    }

}

当break缺少时,从匹配的case语句开始依次向下执行

例:当day为5时,输出为

周五

周六

周日

一周只有七天!想多上课?


循环语句

for循环

适用于已知循环次数

语法结构

for(表达式1;表达式2;表达式3)
{
    ...
}

示例

//打印0~9,每打印五个换行
#include<stdio.h>
int main()
{
    int count = 0;
    for(int i=0; i<10; ++i)
    {
        printf("%d  ",i);
        count++;
        if(count == 5)
        {
            printf("\n");
        }
    }
    return 0;
}

whlie循环

适用于已知循环条件,未知循环次数

语法结构

while(表达式)
{
    ...
}

示例

//打印0~99
#include<stdio.h>
int main()
{
    int i = 0;
    while(i<100)
    {
        printf("%d ");
        i++;
    }
    return 0; 
}

do...while循环

语法结构

do
{
    ...
}while(表达式);

循环先执行,再执行表达式

        循环至少执行一次

示例

//打印0~9
#include<stdio.h>
int main()
{
    int i = 0;
    do
    {
        printf("%d  ",i);
        i++;
    }while(i<10);
    return 0;
}

continue&break

continue 跳出本次循环,继续执行下次循环

break 结束循环语句

 continue

//打印0~15除七及七的倍数的所有数
#include<stdio.h>
int main()
{
    int i = 0;
    while(i<16)
    {
        if(i%7 == 0)
        {
             i++;
             continue;
        }
        printf("%d ");
        i++;
    }
    return 0; 
}

0 1 2 3 4 5 6 8 9 10 11 12 13 15

 break

//打印0~99,到10停止
#include<stdio.h>
int main()
{
    int i = 0;
    while(i<100)
    {
        if(i == 10)
            break;
        printf("%d ");
        i++;
    }
    return 0; 
}

0 1 2 3 4 5 6 7 8 9

goto语句

两部分:goto和标签名

用法

 出现问题时,从一组嵌套循环中跳出。(break只能跳出当前循环)

goto label;
    ...
    ...
label : 语句

示例

//关机程序
#include<stdio.h>
int main()
{
    char input[10]={0};
    system("shutdown -s -t 60");
    again:
        printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n");
        scanf("%s",input);
        if(0==strcmp(input,"我是猪"))
        {
            system("shutdown -a");        
        }
        else
        {
            goto again;        
        }
        return 0;
}

注:== 逻辑操作符

        = 赋值操作符

        0为假,非零为真

最难不过坚持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值