C语言--各种循环详解(超详细)

这篇具有很好参考价值的文章主要介绍了C语言--各种循环详解(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.为什么要学习C语言循环呢?

在C语言之中,运用好循环语句就是拥有了一个强大的武器,它可以帮助你完成许多工作.

有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。

二.循环语句都有哪些呢?

if-else   for   switch -case   do-while  while 这些都是很常见的,我们可以运用它们做很多事情!

除了这些还有 goto语句 continue;

三.接下来正文开始

1.if--else的使用与介绍

可以简单理解为 

if(关系表达式){

                语句体1;

        }

        else{

                语句体2;

         }

       简单理解为  ->                        if  如果(你喜欢C语言)------(你可以做某事)

                                                         else  否则---->(你可以做某事)

用来做一个判断:

我们做一个例子,用来理解;

以下实例判断用户输入的整数是奇数还是偶数.
 

#include <stdio.h>

int main()

{

int number;

printf("请输入一个整数: ");

scanf("%d", &number);

// 判断这个数除以 2 的余数

if(number % 2 == 0)

        printf("%d 是偶数。", number);

else

        printf("%d 是奇数。", number);

return 0;

}

在这里if--else的作用就是用来做一个判断,如果number % 2 == 0成立,那么他就是偶数,反之则是奇数.

1.2在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。

if...else if...(else)语句:
⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码

#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num == 0)
        printf("输⼊的数字是0\n");
else if(num > 0) //这⾥的if 相当于嵌套在els语句中,形成了嵌套结构
        printf("输⼊的数字是正数\n");
else
        printf("输⼊的数字是负数\n");
return 0;
}

通过if--else的连用来构成判断 ;

除了这些,我们还要注意一些问题-->如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

2.switch的使用与介绍

除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。
switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重
的 else if 改成更易⽤、可读性更好的形式。

我们可以理解为:

switch(表达式)
{
    case 常量表达式1:语句1;
    case 常量表达式2:语句2;
    ...
    default:语句n+1;
}

意思是先计算表达式的值,再逐个和 case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行 default 后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有 case 后的语句。

与 if 语句的不同:if 语句中若判断为真则只执行这个判断后的语句,执行完就跳出 if 语句,不会执行其他 if 语句;而 switch 语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有 case 语句。在每一 case 语句之后增加 break 语句,使每一次执行之后均可跳出 switch 语句,从而避免输出不应有的结果。

同样我们来举一个例子:

#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   char grade = 'B';
//这里可以用scanf来输入
 
   switch(grade)
   {
   case 'A' :
      printf("很棒!\n" );
      break;
   case 'B' :
   case 'C' :
      printf("做得好\n" );
      break;
   case 'D' :
      printf("您通过了\n" );
      break;
   case 'F' :
      printf("最好再试一下\n" );
      break;
   default :
      printf("无效的成绩\n" );
   }
   printf("您的成绩是 %c\n", grade );
 
   return 0;
}

以上的代码通过字符来进行选择:

我们也可以使用数字来判别:

输⼊⼀个1~7的数字,打印对应的星期⼏?

#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch(day)
{
 case 1:
printf("星期⼀\n");
break;
case 2:
printf("星期⼆\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}

switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
  • 在 switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?
    其实,在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。不过我们通常是把 default ⼦句放在最后处理的。

3.while 的使用与介绍

C语⾔提供了3种循环语句, while 就是其中⼀种,接下来就介绍⼀下 while 语句。

C 语言中 while 循环的语法:

while(condition)
{
   statement(s);
}

在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。

condition 可以是任意的表达式,当为任意非零值时都为 true。当条件为 true 时执行循环。 当条件为 false 时,退出循环,程序流将继续执行紧接着循环的下一条语句。

接下来我们举一例子:

练习:在屏幕上打印1~10的值?
参考代码:
 

#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
    printf("%d ", i);
    i = i+1;
}
return 0;
}

通过代码的实现我们可以清楚的了解while的语法,还有一些细节需要我们去注意;

while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。

1、程序先判断A是否为真,如果为真则执行循环体B

2、当执行完循环体后再回到第1步

3、当表达式A为假时结束循环

while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环 循环体如包括有一个以上的语句,则必须用{}括起来, 组成复合语句。 应注意循环条件的选择以避免死循环。

4.do-while 的使用与介绍

在循环语句中 do while 语句的使⽤最少,它的语法如下:

C 语言中 do...while 循环的语法:

do
{
   statement(s);

}while( condition );

请注意,条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳
出循环;
⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表
达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

在 do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的
结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅

举个栗子:

#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   int a = 10;

   /* do 循环执行,在条件被测试之前至少执行一次 */
   do
   {
       printf("a 的值: %d\n", a);
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

理解起来也是相对的简单;

5.for的使用与介绍

for 循环是三种循环中使⽤最多的, for 循环的语法形式如下:


for(表达式1; 表达式2; 表达式3) 
 语句;

//如果循环体想包含更多的语句,可以加上⼤括号 

#include <stdio.h>
 
int main ()
{
   /* for 循环执行 */
   for( int a = 10; a < 20; a = a + 1 )
   {
      printf("a 的值: %d\n", a);//表达式4
   }
 
   return 0;
}
//在for循环内执行顺序是 表达式1,表达式2,表达式4,表达式3

在for循环内执行顺序是 表达式1,表达式2,表达式4,表达式3 

  • for(表达式1;表达式2;表达式3)
  • 语句块;
  1. 先执行"表达式1",并且程序只会执行"表达式1"。注:"表达式1"仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句!
  2. 接着程序判断条件"表达式2"的结果是否为"真",为"真"时,程序就执行语句块的内容。注:"表达式2" 一般是一个关系表达式,决定了是否还要继续下次循环,称为"循环条件"。
  3. 语句块执行完的话,接下来会执行"表达式3"! 注:"表达式3" 很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得"不成立"
  4. 然后重复 第二步骤第三步骤,直到 "表达式2" 判断条件不成立就退出循环!

[for]语句最简单的应用形式也是最容易理解的形式如下 :

for(循环变量赋初值;循环条件;循环变量增量) 语句

  1. 循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值;
  2. 循环条件是一个关系表达式,它用来决定什么时候退出循环;
  3. 循环变量增量,定义循环控制变量每循环一次后按什么方式变化;

举个栗子

计算1~100之间3的倍数的数字之和

#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
for(i=1; i<=100; i++)
    {
    if(i % 3 == 0)
    sum += i;
    }
printf("%d\n", sum);
return 0;
}
//⼩⼩的优化
//如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
for(i=3; i<=100; i+=3)
    {
    sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

6.break的使用与介绍

C 语言中 break 语句有以下两种用法:

  1. 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
  2. 它可用于终止 switch 语句中的一个 case。

如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

C 语言中 break 语句的语法:

break;

c语言循环,c语言,开发语言,学习

#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   int a = 10;

   /* while 循环执行 */
   while( a < 20 )
   {
      printf("a 的值: %d\n", a);
      a++;
      if( a > 15)
      {
         /* 使用 break 语句终止循环 */
          break;
      }
   }
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15

 7.continue的使用与介绍

C 语言中的 continue 语句有点像 break 语句。但它不是强制终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。

对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句重新执行条件判断语句。

C 语言中 continue 语句的语法:

continue;

c语言循环,c语言,开发语言,学习

#include <stdio.h>
 
int main ()
{
   /* 局部变量定义 */
   int a = 10;

   /* do 循环执行 */
   do
   {
      if( a == 15)
      {
         /* 跳过迭代 */
         a = a + 1;
         continue;
      }
      printf("a 的值: %d\n", a);
      a++;
     
   }while( a < 20 );
 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

8.goto语句的使用与介绍

C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数
内跳转到设置好的标号处。
例如:

#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}



goto 语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建议是能不⽤尽量不去使⽤;但是 goto 语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出
使⽤ goto 就⾮常的⽅便了。
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;

}
error:
//...
本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套
就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷。c语言循环,c语言,开发语言,学习

 文章来源地址https://www.toymoban.com/news/detail-741180.html

到了这里,关于C语言--各种循环详解(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】预处理详解:#define的各种使用方法

    目录 1.#define定义标识符 1.1赋值 1.2   定义 1.3用更形象的符号来替换一种实现 1.4   加续行符换行 1.5#define定义宏 1.6  #define替换的规则 注意事项 2.#和## 3.带有副作用的宏参数 4.函数和宏的对比 #define定义标识符的用法非常简单 name可以由自己来命名,尽量取一些有意义

    2024年02月15日
    浏览(38)
  • 入门数据结构,c语言实现循环队列实现(详细篇)。

    目录 一、前言 二、循环队列的概念 三、实现循环队列 1、头文件与特殊函数介绍 2、循环队列的结构体 3、队列的初始化 4、判断队列是否为空 5、队列的进队操作 6、队列的出队操作 7、返回队头 8、返回队列长度 9、放回队列容量大小 10、销毁队列 四、完成队列(队列完整代

    2024年02月06日
    浏览(45)
  • C语言:分支语句和循环语句(超详解)

    目录 ​编辑 什么是语句?  分支语句(选择结构) if语句: 应该注意的是: switch语句: 运用练习: 循环语句 while循环: for循环: break和continue在for循环中: for循环的变换使用: do...while()循环 do while循环中的break和continue: goto语句 以上就是个人学习见解和学习的解析,欢

    2024年02月12日
    浏览(56)
  • 数据结构-循环队列详解(c语言版)

    目录 一、什么是循环队列? 二、特点 三、基本运算 四、代码实现  1、初始化 2、入队 3、出队 4、队满? 5、队空?  6、输出队列 7、队列大小 8、获取队首元素 五、队列应用场景 六、完整代码 1、完整代码 2、运行结果 七、总结 前言 相比于链队列, 循环队列 有着内存固

    2024年01月20日
    浏览(55)
  • Python语言基础---选择判断循环结构详解

    在Python编程语言中,选择判断和循环是两个非常重要的概念。它们可以让我们根据条件执行不同的代码块,或者重复执行一段代码,这为我们解决各种问题提供了强大的功能。本文将详细介绍Python语言中的选择判断和循环结构,帮助读者更好地理解和运用这些概念。 Python提供

    2024年02月13日
    浏览(70)
  • 逍遥自在学C语言 | for循环详解

    C语言中的循环结构时, for 循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。 本文将详细介绍 for 循环的用法,并提供相关的可编译运行的C代码示例。 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习

    2024年02月08日
    浏览(39)
  • C 语言中的 switch 语句和 while 循环详解

    替代多重 if..else 语句,可以使用 switch 语句。 switch 语句用于选择多个代码块中的一个来执行 switch 表达式只会被计算一次 表达式的值与每个 case 的值进行比较 如果找到匹配,则执行相应的代码块 break 语句用于跳出 switch 块并停止执行 default 语句是可选的,如果找不到匹配的

    2024年02月04日
    浏览(38)
  • 【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】

    目录 猜名次问题 典例题目 题目分析: 代码实现: 运行结果: 猜凶手问题  典例题目 题目分析 代码实现: 运行结果: 猜名次: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二;

    2024年02月07日
    浏览(37)
  • 机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

    目录 引言 二、线性回归 三、逻辑回归 四、支持向量机 五、决策树

    2024年02月02日
    浏览(43)
  • C语言学习笔记---C语言分支与循环语句

    前言: 什么是语句? C语言可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 语句 :C语言中,由分号隔开的句子就是一条语句 如: C语言中用 非零 表示 真 ,用 零 表示 假 ,即: 逻辑真,逻辑假 三大语法结构 :顺序结构、分支(选择)结构、循环结构

    2024年02月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包