C语言分支与循环(上)

 1. if语句

       C语言if语句是一种条件语句,用于根据表达式的计算结果选择是否执行特定的代码块。if语句的基本语法如下:

if (expression) {
    // 需要执行的代码块
}

       其中,expression(这串英文其实没啥作用只不过官方是这样弄的,可以直接替换成汉字“表达式”)是一个条件表达式,如果它的值为true(非0),那么if语句后面的代码块会被执行;否则,代码块不会被执行。可以在if语句后面跟上一个可选的else语句,用于在条件不成立时执行另外一段代码,如下所示:

if (expression) {
    // 需要执行的代码块
} else {
    // 可选的代码块
}

      也可以嵌套多个if语句,实现更复杂的条件判断,如下所示:

if (expression1) {
    // 需要执行的代码块1
} else if (expression2) {
    // 需要执行的代码块2
} else {
    // 需要执行的代码块3
}

      其中,如果expression1的值为true,则执行代码块1;如果expression1的值为false,判断expression2,如果expression2为true,则执行代码块2;如果expression2为false,则执行代码块3。

 2.三种操作符

a.关系操作符
  1. 等于:==
  2. 不等于:!=
  3. 大于:>
  4. 小于:<
  5. 大于等于:>=
  6. 小于等于:<=

       这些关系操作符常用于条件判断语句(如if语句、while语句等),它们可以比较两个值的大小,判断它们之间的关系,并返回一个布尔值(true或false)。

 b.条件操作符

      C语言中的条件操作符又称为三目运算符,其语法格式为:

表达式1 ? 表达式2 : 表达式3

      个运算符先计算表达式1的值,如果为真(非0),则返回表达式2的值;否则,返回表达式3的值。使用条件操作符可以简化if语句嵌套的代码。

     例如,以下代码使用if语句实现了对两个数的比较:

if (a > b) {
    max = a;
} else {
    max = b;
}

    使用条件操作符可以简化为:

max = (a > b) ? a : b;

    这样,代码变得更加简单易懂。但需要注意的是,不要滥用条件操作符,避免影响代码可读性。

 c.逻辑操作符:&& , || , !

     C语言中的逻辑操作符有三个:&&(逻辑与)、||(逻辑或)和!(逻辑非)。

     逻辑与(&&)操作符用于两个操作数都为真时才返回真。例如,如果x>3且y<5,则可以使用&&操作符来检查它们是否同时成立:

if (x > 3 && y < 5) {
    // some code to execute
}

       逻辑或(||)操作符用于当两个操作数中至少有一个为真时就返回真。例如,如果x>3或y<5,则可以使用||操作符来检查它们是否至少有一个条件成立:

if (x > 3 || y < 5) {
   // some code to execute
}

       逻辑非(!)操作符用于取反操作数的值。例如,!x表示“如果x为假,则返回真”,而!(x>3)表示“如果x小于或等于3,则返回真”。

if (!x) {
    // some code to execute if x is false
}

3. switch语句

      C语言的switch语句用于在一系列条件语句中进行选择。它的格式如下:

switch(expression) {
    case constant1:
        // code to be executed if expression matches constant1
        break;
    case constant2:
        // code to be executed if expression matches constant2
        break;
    .
    .
    .
    default:
        // code to be executed if none of the cases match expression
}

      switch语句的关键字是switch,expression是要进行比较的值,常量常用整数或字符常量,case后面是常量,代表一种选择,当expression的值和case后面常量相等时,就执行该case下的代码;default是可选的,当expression的值与所有case后面的常量都不相等时,就执行default下的代码。

       在每个case下都需要有break语句,用于结束该case并跳出switch语句,因为如果没有break语句,程序会继续执行下一个case,并导致逻辑错误。

        以下是一个简单的例子:

int a = 3;
switch(a) {
    case 1:
        printf("a is 1");
        break;
    case 2:
        printf("a is 2");
        break;
    case 3:
        printf("a is 3");
        break;
    default:
        printf("a is not 1, 2 or 3");
}

      在这个例子中,当a等于3时,程序会输出“a is 3”。

4. while循环

       C语言的while循环是一种基本的循环语句,用于重复执行一段代码,直到满足指定的条件停止。其语法格式如下:

while (expression) {
    statement(s);
}

       其中,expression是用于判断循环是否需要继续执行的条件表达式,statement(s)是要重复执行的语句块。

       while循环的执行过程是:先对expression进行求值,如果值为真,则执行statement(s),然后再对expression进行求值,直到expression的值为假为止。在循环执行期间,如果expression一开始的值为假,则不会执行statement(s)

      在使用while循环时,需要注意控制循环的条件,避免陷入无限循环而导致程序崩溃。以下是一个简单的例子:

#include <stdio.h>

int main() {
    int i = 1;
    while (i <= 10) {
        printf("%d ", i);
        i++;
    }
    return 0;
}

       在这个例子中,循环条件是i &lt;= 10,当i的值小于或等于10时,循环会继续执行。每次循环中,i的值会加1,并将其打印输出,直到i的值大于10时停止循环。运行程序后,输出结果为1 2 3 4 5 6 7 8 9 10

5. for循环

      C语言的for循环是一种循环结构,用于重复执行某个语句。它的一般形式如下:

for (初始化; 条件表达式; 更新表达式) {
    循环体语句;
}

      其中:

  • 初始化:在循环开始前执行一次的语句,通常用于初始化计数器等变量。
  • 条件表达式:每次循环开始前都会被执行,如果结果为真,则继续循环;否则跳出循环。
  • 更新表达式:每次循环结束后都会被执行,用于更新计数器等变量的值。
  • 循环体语句:每次循环开始前都会被执行的语句。

      举个例子,下面的代码展示了一个简单的倒数计时程序,使用for循环从10开始倒数,直到0为止:

#include <stdio.h>

int main() {
    int i;
    for (i = 10; i >= 0; i--) {
        printf("%d\n", i);
    }
    return 0;
}

   输出结果为:

10
9
8
7
6
5
4
3
2
1
0

6. do-while循环

      C语言的do-while循环是一种循环结构,用于重复执行某个语句。与while循环不同的是,do-while循环会先执行一次循环体语句,再根据条件表达式判断是否继续循环。

     它的一般形式如下:

do {
    循环体语句;
} while (条件表达式);

其中:

  • 循环体语句:每次循环开始前都会被执行的语句。
  • 条件表达式:每次循环结束后都会被执行,如果结果为真,则继续循环;否则跳出循环。

       与while循环相比,do-while循环能够保证循环体内的语句至少被执行一次。举个例子,下面的代码展示了一个简单的数字猜谜游戏,使用do-while循环直到猜对为止:

#include <stdio.h>

int main() {
    int number = 7;
    int guess;
    do {
        printf("Enter your guess:");
        scanf("%d", &guess);
        if (guess > number) {
            printf("Too high!\n");
        } else if (guess < number) {
            printf("Too low!\n");
        }
    } while (guess != number);
    printf("You got it!\n");
    return 0;
}

    在上述代码中,循环体内的语句会至少被执行一次,直到猜对数字为止。

7. break和continue语句

   在C语言中,break和continue语句用于控制程序跳出循环的执行。

  • break语句:当在循环内部使用break语句时,程序将立即跳出循环结构,继续执行循环后面的语句。
  • continue语句:当在循环内部使用continue语句时,程序将跳过当前循环的剩余部分,继续执行下一次的循环。

   下面分别对它们进行详细说明。

  1. break语句

      break语句主要用于跳出循环结构,它可以用在for、while、do-while循环中。当程序执行到break语句时,将会跳出当前的循环,继续执行循环语句后面的语句。下面是一个使用break语句的示例:

for (int i = 1; i <= 10; i++) {
    if (i == 6) {
        break;
    }
    printf("%d ", i);
}

在上述代码中,当i等于6时,break语句会跳出循环,输出结果为1 2 3 4 5。

  1. continue语句

       continue语句主要用于跳过当前循环中的某次迭代,它可以用在for、while、do-while循环中。当程序执行到continue语句时,将会跳过当前的迭代,继续执行下一次的迭代。下面是一个使用continue语句的示例:

for (int i = 1; i <= 10; i++) {
    if (i == 6 || i == 8) {
        continue;
    }
    printf("%d ", i);
}

     在上述代码中,当i等于6或8时,continue语句会跳过当前迭代,输出结果为1 2 3 4 5 7 9 10。

     需要注意的是,在循环语句中使用break和continue语句时,也需要注意不要使用过度。过多的break和continue语句会使程序变得难以理解和维护,容易产生错误。

8. 循环的嵌套

      C语言中循环嵌套是在一个循环体内部嵌套另一个循环体,常用于多重循环、数组处理、矩阵运算等操作。

以下是一个简单的C语言循环嵌套示例:

#include <stdio.h>

int main() {
    int i, j;
    for (i = 1; i <= 5; i++) {
        for (j = 1; j <= i; j++) {
            printf("%d ", j);
        }
        printf("\n");
    }
    return 0;
}

       上述示例代码中,第一个for循环用来控制外层循环,第二个for循环用来控制内层循环。每次内层循环执行完毕后,外层循环再次执行,直到外层循环执行完毕为止。输出结果如下:

1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 

在实际开发中,循环嵌套的使用需要注意以下几点:

  1. 循环次数不能过多,否则会影响程序的性能,甚至会造成死循环。
  2. 尽量使用较少的循环嵌套,以提高程序的可读性和可维护性。
  3. 循环内部的操作需要尽量简单,避免对内存的大量读写操作,以提高程序的效率。

9. goto语句(这个不建议使用啦~)

       C语言中的goto语句可以无条件地转移到在同一函数内的其它标记,即可以将程序的执行直接转移到代码中的另一个位置,跳过中间的部分。goto语句的使用需要谨慎,在不恰当的使用下可能产生一些可怕的副作用,比如死循环,程序跳转混乱,或者造成难以维护的代码等。

goto语句的格式如下:

goto label;

      其中,label是标号,标号由一个标识符和一个冒号组成,用来标识代码中的某个位置,例如:

label: statement

     其中,statement是一个语句。

     下面是一个简单的goto语句示例:

#include <stdio.h>

int main() {
    int i = 1;
    label:        // 标号
        printf("%d\n", i);
        i++;
        if (i <= 5) {
            goto label;    // 跳转到标号处
        }
    return 0;
}

     上述示例代码中,使用goto语句实现了简单的循环输出。输出结果如下:

1
2
3
4
5

    需要注意的是,goto语句在使用前必须定义好对应的标号,否则会编译错误。

    虽然goto语句在某些情况下可以方便地实现代码跳转(但特别特别容易跳错,代码逻辑不强的建议不要用,虽然某些情况下非常好用,比如在多层循环的代码中,如果想快速跳出 使⽤ goto 就⾮常的⽅便了),但在实际开发中尽量避免使用,以保证代码的可读性和可维护性。

  • 36
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值