C语言基础篇:语句

目录

分支语句

1.if语句

2.switch语句

循环语句

1.while循环

2.for循环

3.do......while循环

goto语句 


分支语句

1.if语句

        可以在判断之后选择执行的语句

        语法结构:

1.单分支

if(表达式) //如果表达式结果为真,语句执行,否则不执行
    语句;

2.双分支

if(表达式)  //如果表达式结果为真,语句1执行,否则语句2执行
    语句1;
else        //若不含代码块,则只能写一条语句
    语句2;

3.多分支

if(表达式1)      //表达式1为真,则语句1执行
    语句1;
else if(表达式2) //表达式2为真,则语句2执行
    语句2;
else 
    语句3;

4.含代码块

if(表达式)
    {
        语句列表1;  //这里的一对{ }就是代码块,代码块里面可以写多条语句
    }
    else
    {
        语句列表2;    
    }

举例:

#include <stdio.h>
int main()
{
    int age = 0;
    scanf("%d",&age); //用来接收键盘输入的数据,把这个数据赋给age
    if (age >= 18)    //如果age大于等于18,则打印成年,否则打印未成年,尽量别谈恋爱
        printf("成年\n");
    else
    {    
        printf("未成年\n");  
        printf("尽量别谈恋爱\n");    
    }
    return 0;    
}

悬空else案例:

int main()
{
    int a = 0;
    int b = 2;
    if(a==1)
         if(b==2)
            printf("hehe\n");
         else  //else和离他最近的if结合,而a不等于1,第一个if进不去,第二个if自然就没结果了,所以执行后为空
            printf("haha\n");
    return 0;
} 

2.switch语句

        适用于多分支的情况(switch可以嵌套使用)

        语法结构:

switch(整型表达式)
{
    语句项://case语句项
}

例如:

int day = 0;
scanf("%d",&day);
switch (day)
{
    case 1:
        printf("星期1\n");
        break;  //跳出switch分支
    case 2:
        printf("星期2\n");
        break;
    case 3:
        printf("星期3\n");
        break;
    case 4:
        printf("星期4\n");
        break;
    case 5:
        printf("星期5\n");
        break;
    case 6:
        printf("星期6\n");
        break;
    case 7:
        printf("星期日\n");
        break;
    default:  //如果day的值不在1-7之间,则进入default中
        printf("输入错了\n");
        break;
}

        而如果day在多个情况时执行的任务相同,则可以这么写:

int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1:    //这里的1 ,2里没有内容,就会顺序执行程序到case 3
        case 2:
        case 3:
            printf("学习C语言");
            break;
        case 4:
        case 5:
            printf("学习数据结构与算法");
            break;
        case 6:
        case 7:
            printf("休息");
            break;
        default:
            printf("打错了");
            break;
    }
    return 0;
}

循环语句

1.while循环

        可以使代码循环执行的语句,一般用于不知道需要循环次数的时候

#include <stdio.h>
int main()
{
    int line = 0; //初始化循环变量
    while (line < 99999) //若括号里条件成立,则代码循环,反之则代码跳出循环
    {
        printf("代码写了:%d行\n", line);
        line++; //调整循环变量
    }
    if (line == 99999)
    printf("你是精英程序员了!\n");
    return 0;
}

        而在while循环中,同样可以使用break和continue

        在while循环中,break用于永久终止循环,continue用于跳过本次循环中continue后面的代码,直接去判断部分,看是否进行下一次循环

#include <stdio.h>
int main()
{
    int i = 1;
    while(i <= 10)
    {
        if (i == 5)     //若是break,则结果为1 2 3 4 
            break;        //若是continue,则结果为1 2 3 4 死循环
        printf("%d",i);
        i++;                                
    }
    return 0;
}

2.for循环

        可以使代码循环执行的语句,一般用于知道需要循环次数的时候

语法结构
    for(表达式1;表达式2;表达式3)
        循环语句;

        表达式1为初始化部分,用于初始化循环变量的。

        表达式2为条件判断部分,用于判断循环时候终止。

        表达式3为调整部分,用于循环条件的调整

举例:

#include <stdio.h>
int main() //运行结果为12346789,跳过了5
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if ( i == 5)
            continue;                                        
        printf("%d",i);
    }
    return 0;
}

for循环变种

//for循环的变种
//第一种:
int main()
{
    //判断部分省略 --- 判断结果恒为真,可能导致死循环
    for (;;)
    {
         printf("hehe\n");       
    }
    return 0;
}
//第二种:
结果为三个hehe
int main()
{
    int i = 0;
    int j = 0;
    for (; i < 3; i++)
    {
        for (; j < 3; j++)  //当第二个for中的printf在i=0时执行满三次后此时j已经等于3,所以在i等于1,2时程序不进入第二个for
        {
            printf("hehe\n");        
        }    
    }
    return 0;
}
//第三种:
结果为循环0次
int main()
{
    int i = 0;
    int j = 0;
    for (i = 0, j = 0; j = 0; i++, j++)//“j = 0”为判断语句,=为赋值符号,循环进行0次
        j++;
    return 0;
}

3.do......while循环

        先执行,后判断,所以至少执行一次

语法结构:
do
{
    循环语句;
}while(表达式);

举例:

#include <stdio.h>
int main()
{
    int i = 1; //结果为1-10
    do
    {
        printf("%d",i);
        i++;    
    } while (i <= 10);
    
    return 0;
}

goto语句 

        C语言中提供了可以随意滥用的 goto语句和标记跳转的标号 不建议过多使用

        从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码

        但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环

        而这种情况使用break是达不到目的的,因为它只能从最内层循环退出到上一层的循环。

#include <stdio.h>
int main()
{
flag:
    printf("好好学习\n");
    Sleep(500); //会使程序的执行暂停500ms
    printf("努力刷题\n");
    Sleep(500);
    goto flag;  //该程序会一直打印"好好学习"和"努力刷题"
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Er_wei_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值