if 条件判断语句

if 语句结构

格式:

  1. if (表达式)
  2. {
  3. 语句;
  4. }

如果表达式成立,就执行大括号中的语句;否则跳过该 if 语句

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int num;
  6.  
  7. printf("请输入一个数字:");
  8. scanf("%d", &num);
  9.  
  10. if (num > 10)
  11. {
  12. printf("该数字大于 10\n");
  13. }
  14.  
  15. return 0;
  16. }

运行结果

12 符合 if 语句的条件,所以执行大括号中的语句

6 不符合 if 语句的条件,所以跳过该 if 语句

if - else 结构

格式:

  1. if (条件)
  2. {
  3. 语句 1;
  4. }
  5. else
  6. {
  7. 语句 2;
  8. }

如果 if 语句的条件成立执行语句 1,否则执行语句 2

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int num;
  6.  
  7. printf("请输入一个数字:");
  8. scanf("%d", &num);
  9.  
  10. if (num > 10)
  11. {
  12. printf("%d 大于 10\n", num);
  13. }
  14. else
  15. {
  16. printf("%d 不大于 10\n", num);
  17. }
  18.  
  19. return 0;
  20. }

运行结果

if - else if - else 语句结构

格式:

  1. if (条件 1)
  2. {
  3. 语句 1;
  4. }
  5. else if (条件 2)
  6. {
  7. 语句 2;
  8. }
  9. else if (条件 3)
  10. {
  11. 语句 3;
  12. }
  13. else
  14. {
  15. 语句 4;
  16. }

如果条件 1 成立,则执行语句 1;如果条件 2 成立,则执行语句 2;如果条件 3 成立,则执行语句 3;条件 1,2,3 都不成立,执行语句 4

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int num;
  6.  
  7. printf("请输入成绩:");
  8. scanf("%d", &num);
  9.  
  10. if (num >= 85)
  11. {
  12. printf("你的成绩为A\n");
  13. }
  14. else if (num < 85 && num >= 75)
  15. {
  16. printf("你的成绩为B\n");
  17. }
  18. else if (num < 75 && num >= 60)
  19. {
  20. printf("你的成绩为C\n");
  21. }
  22. else
  23. {
  24. printf("你的成绩为D\n");
  25. }
  26.  
  27. return 0;
  28. }

运行结果

switch 语句

格式:

  1. switch (表达式)
  2. {
  3. case 常量表达式 1 : 语句 1;
  4. case 常量表达式 2 : 语句 2;
  5. case 常量表达式 3 : 语句 3;
  6. case 常量表达式 4 : 语句 4;
  7. default : 语句 5;
  8. }

程序会执行表达式的值相对应的常量表达式的语句,如果全没有的话,会执行 default 的语句 5

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a, b;
  6.  
  7. printf("请输入两个数字 1 或 2:");
  8. scanf("%d %d", &a, &b);
  9.  
  10. switch (a + b)
  11. {
  12. case 2: printf("结果为 2\n");
  13. case 3: printf("结果为 3\n");
  14. case 4: printf("结果为 4\n");
  15. default: printf("结果未知\n");
  16. }
  17.  
  18. return 0;
  19. }

运行结果

程序执行表达式的值相对应的常量表达式的语句之后,继续执行了之后的语句,这并不是我们想要的结果

这需要用到 break 来改进

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a, b;
  6.  
  7. printf("请输入两个数字 1 或 2:");
  8. scanf("%d %d", &a, &b);
  9.  
  10. switch (a + b)
  11. {
  12. case 2: printf("结果为 2\n");break;
  13. case 3: printf("结果为 3\n");break;
  14. case 4: printf("结果为 4\n");break;
  15. default: printf("结果未知\n");break;
  16. }
  17.  
  18. return 0;
  19. }

运行结果

while 语句

格式:

  1. while (条件)
  2. {
  3. 语句;
  4. }

如果条件成立,则会一直执行大括号中的语句

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i = 0, count = 0;
  6.  
  7. while (i <= 100)
  8. {
  9. count = count + i;
  10. i ++;
  11. }
  12.  
  13. printf("结果为 %d \n", count);
  14.  
  15. return 0;
  16. }

运行结果

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int count = 0;
  6.  
  7. printf("请输入一行英文字符:");
  8.  
  9. while (getchar() != '\n')
  10. {
  11. count++;
  12. }
  13.  
  14. printf("该行英文字符有 %d 个字符\n", count);
  15.  
  16. return 0;
  17. }

运行结果

do - while 语句

格式:

  1. do
  2. {
  3. 语句
  4. }
  5. while (条件);

执行大括号中的语句,直到条件不成立,while 语句后有个分号

大括号中的语句至少会被执行一次

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i = 0, sum = 0;
  6.  
  7. do
  8. {
  9. sum = sum + i;
  10. i ++;
  11. }
  12. while (i <= 100);
  13.  
  14. printf("结果的值为 %d\n", sum);
  15.  
  16. return 0;
  17. }

运行结果

for 语句

格式:

  1. for (表达式 1; 表达式 2; 表达式 3)
  2. {
  3. 循环体
  4. }

表达式 1 为循环初始化表达式,表达式 2 为循环条件表达式,表达式 3 为循环调整表达式

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i;
  6.  
  7. for (i = 0; i < 10; i++)
  8. {
  9. printf("Hello World!\n");
  10. }
  11.  
  12. return 0;
  13. }

运行结果

表达式 1、表达式 2、表达式 3 可以安装需要进行省略,但是分号不能省略

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i = 0;
  6.  
  7. for (;i < 10;)
  8. {
  9. printf("Hello World!\n");
  10. i++;
  11. }
  12.  
  13. return 0;
  14. }

运行结果

表达式 1、2、3 都省略的话:for (;;) 就和 while (1) 一样

表达式 1、3 可以是用逗号分隔的多个表达式

  1. for (i = 0, j = 10; i < j; i++)

C99 运行在表达式 1 中定义变量,定义的变量的作用域只在循环中

  1. for (int i = 0; i < 10; i++)

使用 for 循环嵌套实现九九乘法表

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i, j;
  6. for (i = 1; i <=9; i++)
  7. {
  8. for (j = 1; j <= i; j++)
  9. {
  10. printf("%d * %d = %-2d", i, j, i * j);
  11. }
  12. putchar('\n');
  13. }
  14.  
  15. return 0;
  16. }

运行结果

break 语句

结束当前循环

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int i, j;
  6.  
  7. for (i = 0; i < 10; i++)
  8. {
  9. for (j = 0; j < 10; j++)
  10. {
  11. if (j == 3)
  12. {
  13. break;
  14. }
  15. }
  16. }
  17.  
  18. printf("i = %d, j = %d\n" ,i, j);
  19.  
  20. return 0;
  21. }

运行结果

当 j 等于 3 时,j 的循环就因为 break 结束了,只剩下 i 的循环

continue 语句

跳过当前循环,继续下一次循环

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int ch;
  6.  
  7. printf("请输入一个字符串:");
  8.  
  9. while ((ch = getchar()) != '\n')
  10. {
  11. if (ch == 'w')
  12. {
  13. continue;
  14. }
  15. putchar(ch);
  16. }
  17. putchar('\n');
  18.  
  19. return 0;
  20. }

运行结果

C 语言 - 分支、跳转和循环语句的更多相关文章

  1. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  2. C语言分支结构之if else语句

    前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条.第三条……一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...

  3. Oracle笔记 八、PL/SQL跳转/判断/循环语句块

    --goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 d ...

  4. R语言(自定义函数、循环语句、管道函数)

    学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要.去年的参考资料是<R语言实战>,今年主要是看视频.推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学 ...

  5. javascript语句——条件语句、循环语句和跳转语句

    × 目录 [1]条件语句 [2]循环语句 [3]跳转语句 前面的话 默认情况下,javascript解释器依照语句的编写顺序依次执行.而javascript中的很多语句可以改变语句的默认执行顺序.本文 ...

  6. 洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句

    所有的编程语言里都有判断语句和循环语句. 判断语句则是用来分支程序流程的 循环语句则是为了实现一个效果,让程序的规律性的重复操作 不用说,分支和循环自然在python里也是有的 一,条件判断:if,i ...

  7. 新手入门C语言第八章:C循环

    一.C 循环 有的时候,我们可能需要多次执行同一块代码.一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推.编程语言提供了更为复杂执行路径的多种控制结构.循环语句允许 ...

  8. 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)

    流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...

  9. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

随机推荐

  1. 机器人操作系统(ROS)在线实训平台学习实验指南

    机器人操作系统(ROS)在线学习指南       在高校开设ROS相关课程已经积累了一年多的经验,由于自动化类专业在课程安排中不同于计算机相关专业,通常没有Linux相关的课程基础,直接上手ROS较为 ...

  2. matlab load

    参考文献:http://jingyan.baidu.com/article/fec4bce2257963f2618d8bfa.html 对应save,load 命令更加简单. load的方式有三种: ...

  3. 诗·想——日记&断章

    日记      海子 姐姐,今夜我在德令哈,夜色笼罩 姐姐,我今夜只有戈壁 草原尽头我两手空空 悲痛时握不住一颗泪滴 姐姐,今夜我在德令哈 这是雨水中一座荒凉的城 除了那些路过的和居住的 德令哈... ...

  4. C++ 回调函数的几种策略

    Stackoverflow中提出了这样一个问题:假设我们实现了一个User类,Library类,现在Library类中utility需要回调User中func方法,总结答案,常见的几种方法如下: 静态 ...

  5. Atcoder Beginner Contest 118

    A: B +/- A 签到题. B: Foods Loved by Everyone 签到题. C: Monsters Battle Royale 怪物的血量一直两两相减,类似于辗转相减法. 可以证明 ...

  6. BZOJ1407 NOI2002 Savage 【Exgcd】

    BZOJ1407 NOI2002 Savage Description Input 第1行为一个整数N(1<=N<=15),即野人的数目. 第2行到第N+1每行为三个整数Ci, Pi, L ...

  7. BZOJ1087 SCOI2005 互不侵犯King 【状压DP】

    BZOJ1087 SCOI2005 互不侵犯King Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附 ...

  8. android 和主线程有关的小问题

    1.在android 中 HTTP请求被不允许在主线程中执行,否则会抛出异常.如果请求时间过长,阻塞UI线程是一个非常差的体验之前,刚开始开发遇到这个问题,每次app运行到最后,发送网络请求就自己崩溃 ...

  9. 《DSP using MATLAB》示例Example 8.27

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  10. web 优化原则

    1. 减少http 请求   2. 使用CDN   3. 添加expires 头   4. gzip 压缩   5. 样式表放在头部   6. 脚本放底部   7. 避免css 表达式   8. 使用 ...