




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2 章使用循环语句 C 语言基本知识中另外一个重要的内容是循环语句的使用 在对多条件路径进行程序判断的时候 就需要使用循环语句 例如 假设现在读者的面前有三条路可以选择 qRouter1 是通向北京的捷径 如果读者走这条路可以节省时间和精力 但是捷径必然有这样那 样的缺点 例如道路不好走 车多行驶速度慢等 qRouter2 经过西安绕行北京 如果读者选择走这条路 会比捷径多花5个小时 但是路途平坦 车流量也很少 开车和坐车都比较方便 qRouter3 经过河北进入北京 这条路的特点是绕行较少 道路车辆也少 但是缺点是道路比较 狭窄 不能通过重量级的车辆 但是对小车不构成障碍 如果使用程序反映这三种路径的情况 会有如下的形式 Switch 路径编号 Case 1 Router1 Case 2 Router 2 Case 3 Router 3 Default Switch语句就是一种循环语句 该语句通过对条件的判断选择相应的分支以完成程序的执行 这 种语句反映了循环语句的基本内涵 即根据条件选择执行的对象 进而影响到程序的结果 本章将介绍六种循环语句的使用方法 这六种语句是if语句 switch语句 for语句 while语句 do语句和foreach语句 为了让读者更方便地了解条件的判断方法 在本章的开始安排了bool型变量的 内容 2 1 声明bool变量 在循环语句中最经常使用的是bool变量 bool变量只有两个值 一个是true 另一个是false 正 如现实世界中只存在对与错两种表达形式一样 C 语言中也只包含这两种形式 一个变量表达式要么 是true 要么是false 如果为true 则表达式为真 可以继续执行 如果为false 则表达式肯定是有 问题的 要么输出结果为false 要么产生程序异常 这是必然的结果 2 1 1 bool变量的实例 例如 下面代码首先定义一个bool变量 然后将true值传给该变量 再根据if语句输出相应的结果 这里也可以使用Switch语句 1 打开Visual Studio 2005编辑器 单击 文件 菜单 选择 新建项目 命令 打开Visual Studio 2005编辑器的创建向导 然后选择C 语言 最后选择 控制台应用程序 如图2 1所示 63 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 图2 1 bool变量的演示程序 2 在生成的空代码文件中输入如下代码 using System using System Collections Generic using System Text namespace bool class Program static void Main string args bool i true char c 0 Console WriteLine i i false Console WriteLine i bool Alpha if Alpha c 64 else Console WriteLine c 123 3 使用快捷键 Ctrl F5 执行程序 结果如图2 2所示 64 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 图2 2 bool变量的演示结果 2 1 2 bool变量实例的解释 在这段程序中 有三个地方需要注意 第一个地方是如下代码处 bool i true char c 0 Console WriteLine i 在这里 bool变量i被初始化为true 需要注意的是 bool变量如果不初始化是无法使用的 字符 变量c被定义成0 这里需要使用单引号表示引号内的值是一个字符 而不是字符串 在下面的代码中 首先定义一个bool变量Alpha 然后使用if语句判断c的值是否在64和123之间 如果是 则会给Alpha赋值true 然后输出true的值 如果不是 则会给Alpha赋值false 然后告诉读 者c的值在64和123之外 bool Alpha if Alpha c 64 else Console WriteLine c 123 如果想判断值是否在64和123之间 判断形式不能写成 64 c64 在这段代码中 因为name length与0相比较 其结果肯定是bool变量 所以C 编译器会接受该表 达式 并按照其义执行 2 2 2 使用else语句 通过在if语句之后添加一个else语句 就可以将if语句扩展为执行多个语句的语句形式 该语句的 一般形式如下 if condition Statement else Statement 以上面的代码为例 如果name length的值小于0 则可以执行有另外一种结果的语句 如下所示 66 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 if name length Console WriteLine name else Console WriteLine Please enter your name 一个else语句总是要与一个if语句匹配 这一点在有多个if else语句时相当重要 同时 C 语法还 提供了else if的语句 不过在多数情况下 使用if else也可以达到同样的效果 C 语言提供else if的语 句的原因是为了与Visual Basic NET相互兼容 例如 下面是一段if else的语句 在语句执行的过程中同时使用了else if语句 读者可以仔细 观察 if name length 0 Console WriteLine name else if retries 0 if str Equals user name Console WriteLine 您输入正确 谢谢您的使用 再见 else if count 0 if str Equals user name Console WriteLine 您输入正确 谢谢您的使用 再见 如果用户输入的字符串错误 则要求用户再次输入 累计次数为3 代码如下所示 else if count 2 Console WriteLine 您输入错误 请重新输入 count count 1 goto start 如果上述过程中 用户均发生了错误 则退出程序 代码如下所示 else Console WriteLine 您输入错误的次数超过三次 谢谢您的使用 else Console WriteLine 您没有输入用户名 再见 2 3 使用switch语句 如果选择的条件比较多 可执行的语句也比较多 那么if语句就不适用了 这时可以选择使用 switch语句 switch语句用于多分支选择 比多层次if语句更有效 代码如下所示 if condition1 Statement 70 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 else if condition2 Statement If condition3 Statement else Statement else Statement 使用switch语句可以写为 Switch condition Case condition1 Statement Break Case condition2 Statement Break Case condition3 Statement Break Default Statement Break 2 3 1 理解switch语句的语法 switch语句有三个关键字 qswitch 用于确定需要判断的条件表达式 该表达式可以是一个变量 也可以是一个完整的判 断表达式 qcase 用于指定与switch表达式相匹配的常量 该常量的类型必须和switch的表达式的值的类型 保持一致 每个case语句之后还有很多的statement语句 这些都是满足条件之后需要执行的语 句 case语句可以有多条 qdefault 如果没有任何case语句符合条件 则执行默认的default语句和default语句之后的执行 语句 注意 每个case语句和default语句都需要在执行完成之后跳出循环 这时就需要使用break语句 每个 case语句都可以使用括号 和 将statement语句和break语句包括在里面 71 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 2 3 2 switch语句的实例 为了演示switch语句在程序中的用法 这里以程序为例进行说明 这个程序主要是显示一个用户 可以选择菜单 程序根据用户选择的顺序序号执行相应的输出 1 打开Visual Studio 2005编辑器 单击 文件 菜单 选择 新建项目 命令 打开Visual Studio 2005编辑器的创建向导 然后选择C 语言 最后选择 控制台应用程序 如图2 5所示 图2 5 switch语句的程序演示 2 在生成的空代码文件中输入如下代码 using System using System Collections Generic using System Text namespace switch class Program static void Main string args Console WriteLine 这是一个模拟DOS程序菜单的程序演示 请输入如下左方的数字 Console WriteLine 1 Hello World Console WriteLine 2 Beijing Console WriteLine 3 ShangHai Console WriteLine 4 Guangzhou string str Console ReadLine switch str case 1 Console WriteLine 您选择的是序号1 您好 世界 break case 2 72 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 Console WriteLine 您选择的是序号2 北京 break case 3 Console WriteLine 您选择的是序号3 上海 break case 4 Console WriteLine 您选择的是序号4 广州 break default break 3 使用快捷键 Ctrl F5 执行程序 结果如图2 6所示 图2 6 switch语句的程序演示结果 2 3 3 switch语句实例的解释 这个程序模仿了DOS时代程序的菜单界面 通过输入菜单之前的数字 可以得到不一样的结果 在程序中 首先输出了大量的信息 这些信息的作用是让使用者了解菜单的结构和可以选择的菜单项 目 如以下代码所示 Console WriteLine 这是一个模拟DOS程序菜单的程序演示 请输入如下左方的数字 Console WriteLine 1 Hello World Console WriteLine 2 Beijing Console WriteLine 3 ShangHai Console WriteLine 4 Guangzhou 接下来 程序定义了一个变量str 用来接收使用者输入的值 以字符串类型定义变量 如以下代 码所示 string str Console ReadLine 73 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 下面的代码就是程序的重点了 程序使用switch语句根据使用者输入的字符执行相应case语句下 面的执行语句 如果都不是则使用default语句直接结束程序 代码如下所示 switch str case 1 Console WriteLine 您选择的是序号1 您好 世界 break case 2 Console WriteLine 您选择的是序号2 北京 break case 3 Console WriteLine 您选择的是序号3 上海 break case 4 Console WriteLine 您选择的是序号4 广州 break default break 2 4 使用while语句 while语句是本章介绍的第一种循环语句 在while循环语句中使用了判断表达式 如果该表达式 为真 则会不断重复执行下面的语句 一个典型的while语句的结构如下 while condition Statement 图2 7表示了一个完整的while语句的执行流程 在这个图中 可以看到while语句可以执行0次后结束 也可以一直执行 直到 条件表达式不再满足为止 2 4 1 while语句的实例 为了演示while语句在程序中的用法 下面以程序为例进行说 明 这个程序主要通过判断整数n是否大于使用者输入的正整数值 决定后续的执行 如果大于则结束程序 否则 输出所有小于该 值的正整数值 1 打开Visual Studio 2005编辑器 单击 文件 菜单 选 择 新建项目 命令 打开Visual Studio 2005编辑器的创建向导 然后选择C 语言 最后选择 控制台应用程序 如图2 8所示 2 在生成的空代码文件中输入如下代码 using System using System Collections Generic 74 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 开始 条件表达式 执行语句 结束 图2 7 while循环语句的流程图 using System Text namespace while class Program static void Main string args int n 1 int m Convert ToInt16 Console ReadLine while n m Console WriteLine 第 n 个整数是 0 n n 图2 8 while语句的程序演示 3 使用快捷键 Ctrl F5 执行程序 结果如图2 9所示 2 4 2 while语句实例的解释 这个程序根据读者的输入来选择输出的内容 如果读者输入10 则会如图2 9所示的那样 程序会 输出小于10的所有正整数的值 程序在最开始定义了两个变量 如以下代码所示 int n 1 int m Convert ToInt16 Console ReadLine 第一个整型变量n的作用是计数 n如果大于输入的值则程序终止 第二个整型变量m是读者输入 的整型值 这里使用了Convert转换函数 因为读者输入和程序读入的值都是字符串值 必须将之转 换成整型值才能与n比较 Convert函数是C 提供的类型之间的转换函数 如上代码中使用的Convert 75 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 ToInt16用于将读者输入的值转换成整型变量 图2 9 while语句程序演示的结果 接下来使用while语句对n和m进行比较 如果n小于m 则不断重复判断和输出 否则退出程序 代码如下所示 while n m Console WriteLine 第 n 个整数是 0 n n 这里n在每次判断之后都需要自动加1 累计值再次跟m比较 2 5 使用for语句 for循环语句是第二种复杂的循环语句 for循环用于执行某个循环直到指定条件成为true为止 典 型的for循环语句的语法如下 for init condition iteration Statement 2 5 1 for循环语句的语法 for循环语句由4个部分组成 init初始值 condition条件表达式 迭代语句iteration和控制语句 statement 执行的顺序是 q当for循环语句开始执行时 执行一次初始化表达式init q如果条件表达式condition的值为true 则程序继续执行控制语句 否则跳出for循环语句 q执行控制语句之后 迭代表达式执行一次 一个完整的for循环的流程图如图2 10所示 一般来说 for循环语句可以用如下代码所示的方式来使用 76 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 图2 10 for循环的流程图 Int intArray 1 2 3 for int i 0 i intArray Length i Console writeline intArray i 读者可以将这个例子写成完整的程序编译一次 看结果是否正确 其正确的结果是 1 2 3 2 5 2 for循环语句的实例 为了演示for循环语句在程序中的用法 这里以程序为例进行说明 这个程序的功能是将1 100的数字按照行列式的形式输出 实现的主要原理是控制行的数字的个 数在10以内 1 打开Visual Studio 2005编辑器 单击 文件 菜单 选择 新建项目 命令 打开Visual Studio 2005编辑器的创建向导 然后选择C 语言 最后选择 控制台应用程序 如图2 11所示 2 在生成的空代码文件中输入如下代码 using System using System Collections Generic using System Text namespace for class Program 77 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 开始 初始化表达式 条件表达式 受控语句 真 假 迭代语句 static void Main string args 外面的循环控制行的数字 for int i 0 i 100 i 10 里面的循环是列出行的数字 for int j i j i 10 j Console Write j Console WriteLine 3 使用快捷键 Ctrl F5 执行程序 结果如图2 12所示 图2 11 for循环语句的程序演示 图2 12 for循环语句程序演示的效果 78 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 2 5 3 for循环语句实例的解释 这个循环语句的结构比前面演示的while结构稍微复杂一些 由两个for循环语句嵌套而成 在外 面的for循环语句用来控制输出的数字内容 是1 100 不过每次的增量都是以10计算 只有这样才 能保证最后的行列式保持整齐 如以下代码所示 外面的循环控制行的数字 for int i 0 i 100 i 10 接下来 嵌套的for循环用来列出行的具体内容 数字的增量是1 这样就将每行补充完整 如以 下代码所示 for int j i j i 10 j Console Write j 接着使用如下代码换行 如下所示 Console WriteLine 2 6 使用foreach语句 foreach语句是for语句的简化形式 从Visual Basic移植过来 当需要重复集合类型的数字时 foreach特别有用 因为在foreach语句中经常会用到in关键字 典型的foreach循环语句的流程图如图 2 13所示 图2 13 foreach循环语句流程图 79 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 开始 用集合中的第一个 元素来初始化 局部变量 假 真 假 真 集合中是 否存在元素 集合 中还剩有元 素吗 受控语句 结束 用集合中的第一 个元素来初始化 局部变量 foreach循环语句的典型语法结构如下所示 foreach type in collection Statement 当循环语句中的控制语句或者是statement执行一次的时候 type变量都会自动更新 指向集合中 的下一个元素 从而起到简化循环体代码的作用 例如 Int data 1 2 3 4 foreach int in in data Console WriteLine i 这个程序的目的是列举出数组data中的元素 在列举的过程中使用了foreach循环 这是foreach的 最大特点 当跟集合类的结构混合使用时效果特别好 这个程序的结果是 1 2 3 4 2 6 1 foreach循环语句的实例 为了演示foreach循环语句在程序中的用法 这里以程序为例进行说明 这个程序的功能是将一个 数组中的元素按照列的形式输出 1 打开Visual Studio 2005编辑器 单击 文件 菜单 选择 新建项目 命令 打开Visual Studio 2005编辑器的创建向导 然后选择C 语言 最后选择 控制台应用程序 如图2 14所示 图2 14 foreach循环语句的程序演示 2 完成后的代码文件如下所示 using System using System Collections Generic using System Text 80 励 志 照 亮 人 生 编 程 改 变 命 运 零基础学 Visual C 2005 namespace foreach class Program static void Main string args int fibarray new int 0 1 2 3 5 8 13 foreach int i in fibarray System Console WriteLine i 3 使用快捷键 Ctrl F5 执行程序 结果如图2 15所示 图2 15 foreach循环语句程序演示的效果 2 6 2 foreach循环语句实例的解释 这个程序较为简单 在程序的开始定义了一个数组 这个数组由7个数字构成 如下所示 int fibarray new int 0 1 2 3 5 8 13 接着程序希望将数组中的数字按照列的形式显示出来 故而使用foreach来循环列举这些数字 首先定义一个和数组类型相同的整型变量i 如下所示 foreach int i in fibarray 然后在foreach的循环体中 执行按列输出的语句 如下所示 System Console WriteLine i 两者联合起来完成了对数组成员的输出任务 读者还可以试验别的输出方式 均可以使用foreach 语句和in的关键字的联合体 81 励 志 照 亮 人 生 编 程 改 变 命 运 第3章使用循环语句 2 7 使用do语句 do语句与while语句有很多相似之处 比如 两者的结构体基本相同 都包含while关键字 但是 本书并没有将do语句与while语句放在一起分析 因为该语句的循环形式更趋近于for循环语句的形式 而不是while语句 2 7 1 do语句的语法 一般的do语句的语法形式如下所示 do statement while condition 在do语句中 条件表达式condition是在语句结构结束时才出现 的 这就意味着do语句的执行顺序是先执行statement然后再判断条 件 这样做的结果是do语句的执行次数要比while语句多一次 其 执行的流程图如图2 16所示 2 7 2 do语句的实例 为了演示do循环语句在程序中的用法 这里以程序为例进行说 明 这个程序的功能是比较do语句与while语句的区别 在程序中 使用了一个整型变量x 根据x的输出显示do在进行循环前和循环后 的差别 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鱼塘行业知识培训课件
- 高铁火车乘车安全知识培训课件
- 济南市2025-2026学年九年级下学期语文期中模拟试卷
- 集安市2025-2026学年九年级上学期语文期末测试试卷
- 高速铁路胀轨课件
- 高速铁路客运概述
- 高速消防员安全知识培训课件
- 电脑知识系列培训课件
- 电脑知识培训材料课件
- 建设工程调规及用地预审服务合同
- 2025届广州市高三年级阶段训练(8月市调研摸底) 数学试卷(含答案)
- 制造业企业质量管理能力评估规范
- 《中国民航发展史》课件-第一章 中国民用航空的萌芽与初步发展
- 2024年(学习强国)思想政治理论知识考试题库与答案
- 泡沫箱子合同范本
- 智能制造装备与集成 课件 02 智能制造架构与装备
- 2024-2029全球及中国土豆泥行业市场发展分析及前景趋势与投资发展研究报告
- 地球物理勘探合同范本
- 《飞机结构与系统》课件-机翼结构
- 渠道维护工考试题库考点
- DL-光伏发电站电能质量检测技术规程
评论
0/150
提交评论