您现在的位置是:首页 > 短信大全

C语言分支循环

作者:焦糖时间:2024-04-25 17:10:29分类:短信大全

简介  文章浏览阅读955次,点赞38次,收藏24次。C语言中包含三种结构,分别是:1.顺序结构,2.选择结构,3.顺序结构。简单介绍if,else ,if else,for ,while ,do while等语句

点击全文阅读

   C语言中包含三种结构,分别是:1.顺序结构,2.选择结构,3.顺序结构。本篇我讲着重写关于循环结构和选择结构。

一.选择结构

1.if语句

       if语句是C语言中最常见的分支语句,if(bool类型表达式)

语法:

int main() {if (//boolean_expression){    //如果布尔表达式为真将执行的语句 }                                  return 0;}

举例:

#include<stdio.h>int main(){    int num = 10;    if(num>0)    {        printf("%d是正数\n",num);    }    return 0;}

       if语句中布尔类型表达式非负数就是ture执行括号内语句,0便是false不会执行括号内语句(当然可以不用加括号,但只有下一个语句是根据if的布尔类型)。

2.else语句

①一般的else使用:

else语句配合着if语句来使用

语法:

if(//布尔类型表达式){   //布尔表达式为真将执行的语句 }else{   //布尔表达式为假将执行的语句}

举例:

int main() {int age = 0;scanf("%d",&age);if (age >= 18){printf("你已是成年人,可以自己管理游戏时间,并且可以进入网吧消费\n");}else {printf("你的年龄还不够,限制游戏时间,禁止进去网吧等娱乐场所\n");}return 0;}

以上代码的运行结果:

输入的age>=18时:

你已是成年人,可以自己管理游戏时间,并且可以进入网吧消费

当输入的age<18时:

你的年龄还不够,限制游戏时间,禁止进去网吧等娱乐场所

②if和else的嵌套使用

 if...else if...else 语句:if else 语句中  else 可以与另一个if语句连用,构成多重判断

使用条件:

     Ⅰ.一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。

     Ⅱ.一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。

     Ⅲ.一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

语法:

if(//布尔表达式 bool_1){   //当布尔表达式 1 为ture(真)时执行 }else if(布尔表达式 bool_2){   // 当布尔表达式 2 为ture(真)时执行 }else if( 布尔表达式 bool_3){   // 当布尔表达式 3 为ture(真)时执行 }else {   //当以上条件都为false(假)时执行 }

举例:

#include <stdio.h> int main (){   // 局部变量定义    int age = 60 ;    // 判断布尔条件   if( age == 10 )   {       // 如果 if 条件为真,则输出下面的语句        printf("age 的值是 10\n" );   }   else if( age == 20 )   {       //如果 else if 条件为真,则输出下面的语句        printf("age 的值是 20\n" );   }   else if( age == 30 )   {       // 如果 else if 条件为真,则输出下面的语句        printf("age 的值是 30\n" );   }   else   {       //如果上面条件都不为真,则输出下面的语句        printf("没有对应的年龄\n" );   }   printf("age 的准确值是 %d\n", age );    return 0;}

③if和else的注意事项

       Ⅰ.在编程的过程中如果没有或忘记使用{},则会造成编程或者阅读的麻烦。所以,为了方便自己和别人在使用可加可不加{}时都应该加上{}。那万一因为各种情况就是没有写呢?这便是else的悬空问题,如果有多个if和else,else总是跟最近的if匹配。

例:

#include <stdio.h> int main() { int a = 0; int b = 2; if (a == 1) if (b == 2) printf("hehe\n"); else printf("haha\n"); return 0; }

我们看这段代码时,第一个if与else相对应,理所当然认为a不等于1就会执行else中语句打印“haha”但是:

这段代码什么也打印不出来,因为第二个if和else相对应,if下的if...else相当与是if中的语句所以这段代码什么也打印不出来。

Ⅰ.在if中写诸如if(a=5)这样的语句,括号中的语句会执行。

3.switch语句

       了解if语句后C语言还提供了switch语句来实现分支结构。switch语句就是if...else...的变种,个人认为switch使用的时候比if...else...更加的简洁明了一些,当然这是付出结构比较复杂的代价。

语法:

switch(//表达式){    case constant-expression  :       statement(s);       break; //写不写根据实际需求    case constant-expression  :       statement(s);       break; //写不写根据实际需求      //以上的每一个case——break;可以写任意多个    default : //写不写根据实际需求       statement(s);}

注意:

1.switch 语句中的表达式必须是整数类型(char、short、int或枚举),或者是能够隐式转换为整数类型的表达式。

2.case和后边的数字之间必须要有空格。

3.按照需求是否写break语句来跳出switch语句  

举例:

#include <stdio.h>int main() {    char grade = 'B';    switch (grade) {        case 'A':            printf("Excellent!\n");            break;        case 'B':            printf("Good!\n");            break;        case 'C':            printf("Average.\n");            break;        default:            printf("Fail!\n");    }    return 0;}

不使用breakdefault

#include <stdio.h>int main() {    char grade = 'B';    int flag = 0;    switch (grade) {        case 'A':            printf("Excellent!\n");            flag = 1;        case 'B':            if (!flag) printf("Good!\n");            flag = 1;        case 'C':            if (!flag) printf("Average.\n");            flag = 1;        case 'D':            if (!flag) printf("Pass.\n");            flag = 1;        case 'F':            if (!flag) printf("Fail!\n");            break;    }    return 0;}

第一个示例使用了break语句来确保每个case执行后跳出switch语句,而default语句处理了grade不在'A', 'B', 'C'范围内的情况。

第二个示例没有使用break语句,而是通过一个flag来控制是否执行每个case后的代码。

二.循环结构

C语言中提供了3中循环语句,分别是while,do...while,和for。

1.while循环

记忆while语句时可以与if语句类比

语法

if(表达式){ 语句;}while(表达式){ 语句;}

二者非常类似,但是毕竟名字不同,用法当然不同

(这个hehe是无限打印的碍于我手动截屏,所以显示是有限的)

很容易的看出一个只能打印一个hehe,而另一个能打出非常多的hehe。

while语句的原理图:

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

while使用例子:打印1—10个数字:

2.for循环

for循环:精准的重复执行

for循环是一种精准的重复执行特定次数的循环结构。它由三个重要部分组成:初始化表达式、条件表达式和迭代表达式。在每次循环中,初始化表达式仅执行一次,条件表达式用于判断是否继续循环,而迭代表达式则用于更新循环控制变量。

语法:

1 for(表达式1; 表达式2; 表达式3)  //表达式就是限定循环条件的三个语句{    //语句;}
for语句的原理图

例子:

#include <stdio.h>int main() {    // 使用for循环打印数字1到5    for (int i = 1; i <= 5; i++) {        printf("%d ", i);    }    printf("\n");    return 0;}

3.do...while语句

在循环语句中 do while 语句的使⽤最少,它的语法如下: ​​​​​​​
do 语句;while(表达式);

举例:

#include <stdio.h>int main() {    int i = 1;    // 使用do-while循环打印数字1到5    do {        printf("%d ", i);        i++;    } while (i <= 5);    printf("\n");    return 0;}

4.三者使用注意事项:

循环条件的设置:确保在使用whiledo-whilefor循环时,循环条件能够正确反映出循环的目的。循环条件控制着循环何时终止,因此必须小心确保条件能够正确地触发循环结束。

循环控制变量的更新:在for循环中,通常会使用一个循环控制变量来控制循环的次数。确保在循环体中更新这个变量,以避免无限循环或者循环次数不符合预期的情况发生。

初始化和迭代表达式的安排:在for循环中,初始化表达式和迭代表达式对循环控制变量进行设置和更新,因此必须谨慎地安排它们的位置和逻辑。确保初始化表达式只执行一次,并且迭代表达式正确地更新循环控制变量。

do-while循环的初始条件:由于do-while循环至少执行一次循环体后再检查条件,因此必须确保循环体内的操作不会因为初始条件不满足而导致错误。在使用do-while循环时,特别注意循环的初始条件是否满足预期。

循环体内的操作:无论使用哪种循环结构,都要确保循环体内的操作不会导致意外的行为或错误。特别注意在循环体内操作变量的值,确保其符合预期并不会导致逻辑错误。

避免无限循环:在编写循环时,务必注意避免无限循环的发生。无限循环会导致程序陷入死循环,消耗大量系统资源并可能导致程序崩溃。

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句