C语言循序渐进之流程控制

本文介绍了程序控制流的三种基本形式:顺序流程、分支流程和循环流程。详细讲解了if...else条件语句、switch多分支选择语句以及不同类型的循环语句(for,while,do...while)的用法,包括逻辑运算符的使用,以及break和continue在循环中的作用。还展示了如何通过这些语句实现特定的编程任务,如数值交换和矩阵输出。
摘要由CSDN通过智能技术生成

一个完整的程序控制流包含下面三种控制流:

1.顺序流程 (从上到下顺序执行)

2.分支流程 (有所选择执行)

3.循环流程 (循环执行)

(一)常用的一些语句

① if()…else (条件语句)

② for()… (循环语句)

③ while() (循环语句)

④ do...while() (循环语句)

⑤ continue (结束本次循环语句)

⑥ break (中止执行switch或循环语句)

⑦ switch (多分支选择语句)

⑧ return (从函数返回语句)

if()…else (条件语句)

1. if语句

#include <stdio.h>
#include <stdlib.h>    //使用exit函数需要包含 stdlib.h的头文件

int main()
{
    int data;
    puts("请输入一个整形数");
    scanf("%d",&data);
    if(data > 5){            //如果data > 5             
            puts("data > 5");     //输出   "data > 5"
            exit(0);        //程序结束退出   
        }
    puts("data < 5");    //如果data > 5 ,则会执行exit(0),程序结束退出; 第12行语句就不会执行
    return 0;
}

if()else()语句

#include <stdio.h>

int main()
{
    int data;
    puts("请输入一个整形数");
    scanf("%d",&data);
    if(data > 5){            //如果data > 5,执行8行行{到  10行}中的程序               
            puts("data > 5");     //输出   "data > 5"
        }else{                //如果data < 5曾则执行else{} 中的程序
            puts("data < 5");  
        } 
    return 0;
}

   if语句代数法交换值

#include <stdio.h>

int main()
{            //如果data1 > data 2的值,则交换data1和data2 中的值
    int data1 ;
    int data2 ;
    int temp;    //temp用于临时接收data1 或者data2的值
    puts("请输入data1的值"); 
    scanf("%d",&data1);
    puts("请输入data2的值"); 
    scanf("%d",&data2);
    if(data1 > data2){
        printf("交换data1和data2 中的值\n");
          temp = data1;
          data1 = data2;
          data2 = temp;
    }else{
        printf("data2 > data1 不需要交换\n");
    }
    printf("data1 = %d,data2 = %d\n",data1,data2);
    return 0;
}

逻辑运算符

#include <stdio.h>
                    
int main()
{
    int a;
    int b;    
    printf("请输入a,b两个数:\n");
    scanf("%d%d",&a,&b);   
    if( a==1 && b==0){        //逻辑与:&& 需要同时满足两个要求  一个'='是赋值,两个'='判断是否相等
        printf("逻辑与成功\n");
    }    
    if( a==1 || b==0){        //逻辑或:|| 只需要满足一个要求
        printf("逻辑或成功\n");
    }    
    if( !a ){                //逻辑非:! 相反作用
        printf("逻辑非\n");
    }
    return 0;
}

if语句嵌套

#include <stdio.h>

int main()
{
    int a;
    puts("请输入一个整数");
    scanf("%d",&a);
    if( a >1 && a <5 ){
        printf("1< a <5\n");
        if( a >2 && a < 4){
          printf("a = %d \n",a);
    }else {
            printf("a = 2 or a = 3 or a = 4\n");
        }
    } else{
        printf("a>5 || a < 1\n");
    }

    return 0;
}

2.switch选择语句

#include <stdio.h>

int main()
{
    char data;
    int data2;
    printf("请输入一个字符\n");
    data = getchar();
    printf("请输入一个整形数\n");
    scanf("%d",&data2);
    switch(data){        //如果data = a ;则执行第9、10行语句,以下同理
        case 'a':printf("this is a\n");    
                  break;                    //break :结束本次循环 
        case 'b':printf("this is b\n");
                  break;
        case 'c':printf("this is c\n");
                  break;
        default: printf("请输入正确的字符\n");    //default:若data ≠ a,b,c;则执行这条语句
                  break;
    }

    switch(data2){        //如果data = a ;则执行第9、10行语句,以下同理
        case 1:printf("this is 1\n");    
                  break;                    //break :结束本次循环
        case 2:printf("this is 2\n");
                  break;
        case 3:printf("this is 3\n");
                  break;
        default: printf("请输入正确的数字\n");    //default:若data ≠ a,b,c;则执行这条语句
                  break;
    }
    return 0;
}
#include <stdio.h>

int main()
{
    int data2;
    printf("请输入一个整形数\n");
    scanf("%d",&data2);


    switch(data2){        
        case 1:                   
        case 2:printf("this is 1、2\n");
                  break;
        case 3:printf("this is 3\n");
                  break;
        default: printf("请输入正确的数字\n");    //default:若data ≠ a,b,c;则执行这条语句
                  break;
    }
    return 0;
}

#include <stdio.h>

int main()
{
    int x;
    int y;
    scanf("%d",&x);
    if(x < 1){
        y = x;
    }else if(x >=1 && x < 10 ){
        y = 2*x-1;
    }else if(x>=10){
        y = 3*x -11;
    }
    printf("y = %d\n",y);
    
    return 0;
}

3.while循环语句

#include <stdio.h>

int main()
{
    int data = 10;    //第一个表达式,变量初始值
    int number = 1;
    //循环10次
    while(data){        // 第二个表达式,条件临界值  data值为0时不执行{}内程序    while():()里的内容为真(非零),则执行{}里的内容
        printf("%d\n",number++);    //number++:先打印number的值再给number的值加一;++number:先给number加一再打印
        data--;    //同上 data的值:10 9 8 7 6 5 4 3 2 1 0 
        data = data -1;    //第三个表达式,条件发生变化
    }
/*
        while(1){    //死循环,一直执行
            
        }
*/
    return 0;
}
#include <stdio.h>
            //计算 1~100的和
int main()
{
    int number = 1;            
    int sum = 0;            //记得赋予初值,不然会有随机数
    while(number <= 100){
        sum = sum + number;
        number++;
    } 
    printf("sum = %d\n",sum);
    return 0;
}

do...while循环

#include <stdio.h>
        //do..while 和 while的区别
int main()
{
    int data = 0;
    /*
    while(data != 0){
        printf("data = %d\n",data);
    }
    */
    do{        //do...while 先执行do{}的内容再去判断while
        printf("data = %d\n",data);
    }while(data != 0);

    return 0;
}

4.for循环语句

#include <stdio.h>

int main()
{
    int i ;
    /*   
    int i = 1;
    for(; i < 5 ;  i ++)
    */

    /*
    for(; i < 5 ;){    与   while(i < 5)相似
        //循环体
        i++;
    }
    */
//
    /*
     for(int i = 0 ; i < 5 ;  i ++)
    */
    //   赋初值     判断临界值     条件改变
    //   表达式1    表达式2       表达式3
    for(i = 0 ; i < 5 ;  i ++){
          printf("这里是循环体\n");    //循环体     
    }
    /*

        for(;;){     //死循环,一直执行
        
        }
    */    
    return 0;
}

5.break & continue 循环干涉

break

#include <stdio.h>

int main()
{
    int data;
    int temp;
    int number = 0;
    for(data = 1 ; data < 10 ;data++){
        printf("请输入一个数\n");
        scanf("%d",&temp); 
        number = number + temp;
        if(number >= 20){
            printf("已经有20了,现在有%d\n",number);
            break;     //结束本次循环
        }
    }


    return 0;
}

continue

#include <stdio.h>
        //水仙花案列
int main()
{    
    int data;
    for(data = 100;data <= 200;data++){
        if(data % 3 != 0){        //满足 data除3取余数,余数不等于0,执行{}内程序
            continue;            //提前结束本次循环,直接进入下一次循环
        }
    printf("%d  ",data);
    }
    return 0;
}

循环的嵌套输出

#include <stdio.h>
    /*
        要求输出如此矩阵:
            1    2    3    4    5
            2    4    6    8    10
            3    6    9    12    15
            4    8    12    16    20    
    */
int main()
{
    int j;
    int k;
    int data = 0;
    for(j = 1 ; j < 5 ;j++){
        for(k = 1 ; k <= 5 ;k++){
            data = j * k;
            printf("%d    ",data);
        }
        printf("\n");
    }


    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值