【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;
}

运行结果


相关推荐
编码浪子几秒前
构建一个rust生产应用读书笔记7-确认邮件2
开发语言·后端·rust
天之涯上上16 分钟前
JAVA开发 在 Spring Boot 中集成 Swagger
java·开发语言·spring boot
2402_8575834917 分钟前
“协同过滤技术实战”:网上书城系统的设计与实现
java·开发语言·vue.js·科技·mfc
爱学习的白杨树24 分钟前
MyBatis的一级、二级缓存
java·开发语言·spring
OTWOL29 分钟前
两道数组有关的OJ练习题
c语言·开发语言·数据结构·c++·算法
问道飞鱼33 分钟前
【前端知识】强大的js动画组件anime.js
开发语言·前端·javascript·anime.js
拓端研究室33 分钟前
R基于贝叶斯加法回归树BART、MCMC的DLNM分布滞后非线性模型分析母婴PM2.5暴露与出生体重数据及GAM模型对比、关键窗口识别
android·开发语言·kotlin
Code成立34 分钟前
《Java核心技术I》Swing的网格包布局
java·开发语言·swing
Auc2439 分钟前
使用scrapy框架爬取微博热搜榜
开发语言·python
Somnus陳40 分钟前
软考架构师笔记-计算机系统组成-1
笔记·系统架构