C语言基础--逻辑判断和循环

简介: C语言基础--逻辑判断和循环

前言


逻辑判断和循环是结构化语言中必备的内容,学会了这个逻辑循环内容即可让你的编程进入可以判断的形式。


一、储存标识符


在C语言中都会对每个变量的储存位置做一个标记,开发人员可以对每个变量设置一个储存标识符,这样就可以让每个变量存放在一个内存区进行使用。


1.auto


auto 是一个默认的修饰符,这个标识符是标识将变量存放入栈空间中,当这个函数使用完后会自动释放。

使用方法:

auto int a = 6;


2.register


register 能让声明的变量使用时的运行速度变快,将变量放置在缓冲区中,使用时会更方便,但是由于现在的CPU的运行速度变快,这个修饰符使用的频率比较低。


使用方法:


register int a = 6;


3.static


static 是将声明的变量放在静态区中,静态区的内容需要手动进行释放才可以,没办法在函数结束后释放,程序结束可以释放。

使用方法:

static int a = 6;



一般对于这个修饰符的使用是在函数计数,例如判断一个这个函数的调用次数:


void test(){
    static int a = 0;
    a++;
    printf("%d", a);
}
int main(){
    test();
    test();
    test();
    test();
    return 1;
}


4.const


const 是将可变的内容改变为不可变的内容,使用的频率非常高。

使用方法:

const int a = 6;


二、运算符


1.逻辑运算符


1. &&:逻辑与 看见0就为0
2. ||:逻辑或 看见1就为1
3. !:逻辑非 0变1 1变0



2.位运算符


&:按位与 看见0就为0
|:按位或 看见1就为1
~:按位非 0变1 1变0
^:按位异或 相同就为0,不同就为1
<<:左移运算符
>>:右移运算符


3.运算符


1. + - * / %
2. 前++ 前-- 后++ 后--

前++ 前-- 先执行自增或者自减的操作然后再执行其它语句

后++ 后-- 先执行其它语句,再自增或者自减


4.三元运算符


(你需要判断的条件)?执行语句1:执行语句2;

例子:判断大小


char a = 10;
char b = 20;
(a > b)?printf("%d", a) : printf("%d", b);


char a = 10;
char b = 20;
int max = (a > b)?a : b;


三、选择结构


其实就是判断

C语言中没有布尔类型,0表示假,1表示真


1.if判断


判断一个范围

语法:

第一种语法:主要用作执行多条语句


if (逻辑表达式/整形){
    需要执行的内容
}
else if (逻辑表达式/整形){
    需要执行的内容
}
else{
    需要执行的内容
}


第二种写法:主要用作与执行一条语句


if (逻辑表达式/整形)
    需要执行的内容
else if (逻辑表达式/整形)
    需要执行的内容
else
    需要执行的内容


这里只能执行一条语句,不能写多条


1.1 if的嵌套


本质上就是if中嵌套一个if


if (逻辑表达式/整形){
    if (逻辑表达式/整形){
        需要执行的内容
    }
    else if (逻辑表达式/整形){
        需要执行的内容
    }
    else{
        需要执行的内容
    }
}
else if (逻辑表达式/整形){
    if (逻辑表达式/整形){
        需要执行的内容
    }
    else if (逻辑表达式/整形){
        需要执行的内容
    }
    else{
        需要执行的内容
    }
}
else{
    if (逻辑表达式/整形){
        需要执行的内容
    }
    else if (逻辑表达式/整形){
        需要执行的内容
    }
    else{
        需要执行的内容
    }
}


2.switch语句


判断固定值

语法:


switch(变量){
    case 具体值:
        你要执行的语句
    case 具体值:
        你要执行的语句
    default:
        你要执行的语句
}


2.1 switch的特色


当你需要比较的内容和一个case匹配了后,它会把匹配的case下不匹配的case中需要执行的内容一起执行

如何解决switch的特色?

需要添加 break 进行解决。


2.2 switch实现判断范围


int a = 5;
switch(0 < a && a < 10){
    case 1:
        switch(0 <= a && a < 5){
            case 1:
                printf("0-5");
                break;
            case 0:
                printf("5-10");
                break;
        }
        break;
    case 0:
        printf("no");
        break;
}


四、循环结构


1.for循环


语法:


for (第一次进入for循环时执行的内容①; 条件判断②; 执行完一次for循环后执行的内容③){
    循环体1;
    循环体2;
    循环体3;④ 
    .......
}


执行顺序:①-> ②-> ④-> ③-> ②-> ④

另外一种语法:相当于死循环


1. for ( ; ; ){
2.     循环体1;
3.     循环体2;
4.     循环体3;④
5.     .......
6. }


例子一:打印1到100中所有的内容

通用写法


1. int i;
2. for (i = 0; i < 101; i++){
3. printf("%d\n", i);
4. }


C++的写法:

1. for (int i = 0; i < 101; i++){
2. printf("%d\n", i);
3. }

例子二:打印九九乘法表


int i = 0, j = 0;
for (i = 0; i < 9; i++){
    for (j = 0; j <= i; j++){
        printf("%d*%d=%d\t", j + 1, i + 1, (j+1)*(i+1));
    }
    printf("\n");
}


3.while循环


语法:

1. while(逻辑表达式/整形){
2.     循环体1;
3.     循环体2;
4.     循环体3;④
5.     .......
6. }


例子:九九乘法表


int i = 0, j = 0;
while(i < 9) {
    j = 0;
    while(j <= i){
        printf("%d*%d=%d\t", j + 1, i + 1, (j + 1)*(i + 1));
        j++;
    }
    i++;
    printf("\n");
}


4.do-while循环


语法:

1. do{
2.     循环体1;
3.     循环体2;
4.     循环体3;④
5.     .......
6. }while(逻辑表达式/整形);


4.1do-while 和 while的区别


while需要条件满足才执行循环体内的语句

do-while 先执行一遍循环体内的语句,然后再判断while括号内的条件

例子:九九乘法表


int i = 0, j = 0;
do{
    j = 0;
    do{
        printf("%d*%d=%d\t", j + 1, i + 1, (j + 1)*(i + 1));
    }while(++j <= i);
    printf("\n");
}while(++i < 9);


5.break 和 continue


break:跳出当前循环

continue:跳过一次循环


5.1 理解break和continue


就比如你是一家公司的网络开发人员,终于到你年假了,你很开心的买机票去海边玩,但是老板说,每天9点我可能会给你打个电话,然后你对你自己的规划如下:


graph TD; 起床-->等电话 等电话-->去海边玩 去海边玩-->睡觉 睡觉-->起床

然后某一天,你们老板给你打了个电话,告诉你需要快点回来,服务器崩了,你就得结束你的假期回去维护服务器,这个电话相当于是 break ,跳出这个假期的循环


如果有一天你们老板给你说让你远程调一下一个内容,那你不需要结束你今天的假期,只需要花一天的时间去修改一下代码,明天继续度假,这个电话相当于是 continue 。

目录
相关文章
|
3月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
84 5
|
11天前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
42 19
|
11天前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
65 18
|
11天前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
41 18
|
11天前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
43 13
|
11天前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
29 6
|
11天前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
35 5
|
1月前
|
C语言
【C语言】逻辑操作符详解 - 《真假美猴王 ! 》
C语言中有三种主要的逻辑运算符:逻辑与(`&&`)、逻辑或(`||`)和逻辑非(`!`)。这些运算符用于执行布尔逻辑运算。
83 7
|
4月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
252 88
|
1月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。

热门文章

最新文章