【C语言从入门到入土】第三章流程控制

第三章 流程控制

正式开始对流程控制语句的学习

不是你的能力,决定了你的命运,而是你的决定,改变了你的命运。

想,都是问题,做,才是答案。站着不动,永远是观众,想到做到,才是王道

控制类语句

帮助理解

1.if()...else... 条件语句,++层层递进的++

c 复制代码
if(条件){
    表达式01
}else{
    表达式02
};
关系运算符
++如何交换两个数的值?++

++不交换土办法++

逻辑运算符
if...else嵌套
c 复制代码
include <stdio.h>
    int main(){
    if(){
        
    }else if(){
        
    	}else if(){
        
    		}
    
    return 0;
}
如果有三个数,如何让它从小到大排序,要用到冒泡排序法,之后学习
c 复制代码
#include <stdio.h>
int main(){
    int a,b,c;
    printf("请依次输入三个数\n");
    scanf("%d%d%d",a,b,c);
    //分析出会出现三种情况,a最大,,b最大,,c最大
    if(a>b&&a>c){
        
    }
    return 0;
}

2.switch( ) case... 并列,多分支语句

可以是字符,也可以是数字,,,直接看代码学习怎么用

c 复制代码
switch(输入的条件){
    case 1:
        表达式01;
        break; //必须要加上这个语句才能结束
    case 2:
        表达式02;
        break;
    case 3;
        表达式03;
        break;
    default:
        条件都不符合;//在不满足上述所有情况时使用
              
}
2.1练习题
c 复制代码
#include<stdio.h>
int main(){
    int x,y;
    printf("请输入x的值为多少");
    scanf("%d",&x);
    switch(x){
        case 0:
            y=x;
            break;
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            y=2*x-1;
            break;
        default:
            3*x-11;
            break;
    }
    printf("你输入的数y=%d,x=%d",y,x);
    return 0;
}

运行结果,,基本上算是成功了吧,,,无法控制是负数的情况,还有小数,比较坑,,这个故事告诉我们,要选择正确的语句,,如果if...else会简单很多,,不要勉强自己

3.while循环控制语句

c 复制代码
while(条件){			//注意条件只识别,0和1,如果一直是一个正数,这就是一个死循环,要杜绝这种情况,会把单片机内存无限占用
    				//Ctrl+c可以强行终止
    表达式;
}

/******举个例子,,输入十次我爱你*****/
#include <stdio.h>
int main(){
    int a=0;
    while(a<10){
        a=a+1;	//每循环一次,a都会加上一个1
        //还有一种写法,比较简介
        a++;
    }
    
    return 0;
}
3.1练习题
c 复制代码
/*错误案例*/
#include<stdio.h>
int main(){
    int a=0;
    int b=0;
    while(a<=100){
      a=a+1;
        b=b+a;
        printf("b的值为%d",b);
    }
     printf("最终值为%d",b);
    return 0;
}

发现错误了嘛??先写条件的话,会多算一个101,,,以后要注意了

4.do...while

先做一次循环再判断,

c 复制代码
do{
    
}while();

5.for(){ }

c 复制代码
#include<stdio.h>
int main()//三个表达式
{
    int sum;
    int data=1;//表达式1,,条件的初始值
    while(data<=100){	//表达式2,,条件的临界值
        sum=sum+data;
        data++;	//表达式3,,条件的改变
         }
    printf("%d\n",sum);
    
    return 0;
}

++语句全省略的话就是一个死循环++

6.break,,,在还没有达到临界值的情况下,提前结束循环

==介绍一个重要概念,,==取余

% //取余


break结束整个循环,,,,contine仅仅结束本次循环

7.用contine提前结束本次循环

c 复制代码
#include<stdio.h>
int main(){
    for(int a=100;a<=200;a++){		//注意要用分号,,因为每个表达式换成单个
      /*首先要明确一点,能被3整除,则余数就是0*/
        if(a%3 ==0){
          continue;
      } 
        printf("%d",a);
    }
    
    return 0;
}

++运行结果++

循环嵌套

c 复制代码
#include <stdio.h>
int main(){
    int i,j;
    int data =1;
    for(i=1;i<=5;i++){
        for(j=1;j<=3;j++){
            printf("i=%d , j=%d\n",i,j);	//为了打印出行列,,研究行列的关系
            printf("data=%d",data++);	//为了研究一共有几个数
        }
        
    }
}

运行结果

数的个数等于,行列相乘,,

嵌套练习题
c 复制代码
#include<stdio.h>
int main(){
    int i,j;
    for(i=1;i<=4;i++){
        for(j=1;j<=5;j++){
            printf("%d    ",i*j);
        }
        printf("\n");
   }
    return 0;
}

运行结果


相关推荐
Bigan(安)14 分钟前
【奶茶Beta专项】【LVGL9.4源码分析】09-core-global全局核心管理
linux·c语言·mcu·arm·unix
初夏睡觉14 分钟前
从0开始c++,但是重置版,第1篇(c++基本框架)
开发语言·c++
老王熬夜敲代码20 分钟前
进程PCB
linux·笔记
HainesFreeman1 小时前
dns server是什么?自建的dns server是什么东西?有啥用?
笔记
weixin_537217061 小时前
韩语教程资源合集
经验分享
xian_wwq4 小时前
【学习笔记】攻击链贯穿端边云!边缘网络访问三大核心风险预警
笔记·学习·安全·边缘计算
workflower5 小时前
时序数据获取事件
开发语言·人工智能·python·深度学习·机器学习·结对编程
CoderYanger6 小时前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者6 小时前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
林杜雨都6 小时前
Action和Func
开发语言·c#