首页 > 其他分享 >C语言第三学:分支和循环

C语言第三学:分支和循环

时间:2024-10-21 23:21:04浏览次数:3  
标签:语句 break C语言 运算符 while 循环 表达式 分支

    

C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。

我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。

1、if语句

1.1 if

语法形式如下:

表达式成⽴(为),则语句执⾏;表达式不成⽴(为),则语句不执⾏。

在C语⾔中,0为假⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果不 是0,则语句执⾏。

例⼦:输⼊⼀个整数,判断是否为奇数 

1.2 else

语法形式如下:

            4               语句 2

例⼦:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。 (自己试试)

练习:输⼊⼀个年龄,>=18岁就输出:成年,否则就输出:未成年      (大家可以先自己试试

1.3 分支中包含多条语句

if else 语句中默认都只控制⼀条语句,如下

可以看到,不管是>=18 还是 <18,“可以自在恋爱了 ” 都可以打印在屏幕上

这是因为 if 语句只能控制⼀条语句,就是 printf("成年了\n"); ,if语句为,则打印成年了, if语句为,则打印;对于 printf("可以谈恋爱了\n");独⽴存在的,不管if语句的条件的真假,会被执⾏。

那如果我们要if语句同时控制2条语句,怎么办呢?那就要使⽤ {} 将代码括起来, else后也可以跟上⼤括号。      【if 后使⽤{} 控制多条语句-这个块也叫:程序块,或者复合语句 】

1.4 嵌套if

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

比如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。请看如下代码:

再⽐如: 输⼊⼀个整数,如果正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数。

练习:     ( 大家先自己试试

参考代码:

1.5 悬空else问题

如果有多个 if 和 else ,可以记住这样⼀条规则: else 总是跟最接近的 if 匹配。

或者如果我们希望else确实和第⼀个if匹配,可以这样修改代码:

只要带上适当的⼤括号{},代码的逻辑就会更加的清晰,所以⼤家以后在写代码的时候要注意括号的使 ⽤,让代码的可读性更⾼。

2、关系操作符

C语⾔⽤于⽐较的表达式,称为“关系表达式”,⾥⾯使⽤的运算符就称 为“关系运算符”,主要有下⾯6个。

 >   ⼤于运算符                                     <   ⼩于运算 符                      >=   ⼤于等于运算符   

<=  ⼩于等于运算符                             ==  相等运算符                        !=   不相等运算符

关系表达式通常返回 0 或 1 ,表⽰真假。 C语⾔中, 0 表⽰,所有⾮零值表⽰

⽐如, 20 > 12 返回 1 12 > 20 返回 0

3、条件操作符

条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:

计算逻辑:如果 exp1 为, exp2 计算,计算的结果是整个表达式的结果如果 exp1 为, exp3 计算,计算的结果是整个表达式的结果。

练习:使⽤条件表达式实现找两个数中较⼤值。(自己试试

4、逻辑操作符:!    &&      ||       

! :逻辑取运算符(改变单个表达式的真假)。 

&& :逻辑运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。

|| :逻辑运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。

注:C语⾔中,⾮0表⽰0表⽰假。

4.1 逻辑取反运算符  !

4.2 逻辑与运算符  &&

&& 就是运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为,只要有⼀个,则整个表达式为

全真才真  一假即假

4.3 逻辑或运算符  ||

|| 就是运算符,也就是或者的意思, || 也是⼀个双⽬操作符,使⽤的⽅式是 a || b , || 两边的表达式只要有⼀个,整个表达式就是,两边的表达式都为假的时候,才为

全假才假   一真即真

4.4 练习:闰年的判断

输⼊⼀个年份year,判断year是否是闰年     

闰年判断的规则:

1. 能被4整除并且不能被100整除是闰年

 2. 能被400整除是闰年

4.5 短路

像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。

5、switch语句

switch 语句⽤于判断条件有多个结果的情况。

根据 expression 不同的值,执⾏相应 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。

注: switch 后的 expression 必须是整型表达式       • case 后的值,必须是整形常量表达式】

练习:输⼊任意⼀个整数值,计算除3之后的余数

上述的代码中,我们要注意的点有:

1. case 和后边的数字之间必须有空格

 2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。

当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

switch语句中的case和default的顺序问题

6、while循环

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

练习:在屏幕上打印1~10的值

练习:

7、for循环

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

表达式1⽤于循环变量的初始化                     表达式2⽤于循环结束条件的判断

                                  表达式3⽤于循环变量的调整

  

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

8、do-while循环

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

练习:在屏幕上打印1~10的值

练习:

9、break和continue语句

9.1 while循环中的break和continue

break

continue

9.2 for循环中的break和continue

break

其实和 while 循环中的 break ⼀样, for 循环中的 break 也是⽤于终⽌循环的,不管循环还需要循环多少次,只要执⾏到了 break ,循环就彻底终⽌,我们上代码。

break 的作⽤是永久的终⽌循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以 使⽤ break 来完成。

continue

do.while 语句中的 break 和 continue 的作⽤和 while 循环中⼏乎⼀模⼀样  可以自己试试

10、循环的嵌套

前⾯学习了三种循环 while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决 问题,就是我们所说的:循环嵌套,这⾥我们就看⼀个例⼦。

练习:找出100~200之间的素数,并打印在屏幕上。

注:素数⼜称质数,只能被1和本⾝整除的数字。

题⽬解析:

1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。

 2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤ 循环解决。

3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。

11、 goto语句

标签:语句,break,C语言,运算符,while,循环,表达式,分支
From: https://blog.csdn.net/2301_81743879/article/details/143076988

相关文章

  • 刷c语言练习题9(牛客网)
    1、12345678char*getmemory(void){    charp[]= "helloworld";    returnp;}voidtest(void){    char*str=NULL;    str=getmemory(); printf(str);}请问运行Test函数会有什么样的结果?A、出错B、输出"helloworld"C、输出空......
  • c语言小结——使电脑关机,输入正确信息取消关机
    一:代码展示 #include<stdio.h>#include<string.h>#include<stdlib.h>intmain(){charinput[20]={0};system("shutdown-s-t60");agin:printf("请输入:我是帅哥,否则电脑将在1分钟后关机\n");scanf("%s",inpu......
  • C语言实践中的补充知识 Ⅱ
    一、在C语言中,%7.2f是一个格式说明符,通常用于printf或sprintf等函数中,用于控制浮点数的输出格式。这里的%是格式说明符的开始符号。7表示字段宽度。这意味着输出的浮点数将至少占用7个字符的宽度。如果浮点数的实际宽度小于7个字符(包括小数点和小数部分),那么它将在左......
  • 分支与循环:猜数字游戏的代码实现
    在我们学习分支和循环之后我们可以简单的写一个小游戏了——猜数字思维构想    一、预期效果         实现随机生成0~100之间的数字,玩家进行猜测,按结果进行判断。对于结果实现如果玩家猜大了给予玩家“猜大了”的提示;如果猜小了,给予玩家“猜小了”的提示;若......
  • 四,增强for循环
    增强for循环:简化数组和集合遍历的详细指南在Java编程中,遍历数组和集合是一个基本且频繁的操作。传统的for循环虽然可以实现这一功能,但它的语法较为繁琐,尤其是在需要遍历集合中的每个元素时。为了简化这一过程,Java引入了增强for循环(也称为for-each循环),它提供了一种更加简洁和易读......
  • C语言学习4
    函数的调用在C语言中,函数是执行特定任务的代码块,它允许代码重用和模块化。函数调用是程序执行过程中的一个重要环节,它涉及到将控制权从一个函数转移到另一个函数。函数的调用时参数的传递方式分为两种1.传值调用:实参的值会被复制给形参。在函数内部对形参的修改不会影响到......
  • C++研发笔记4——C语言程序设计初阶学习笔记2
            从今天开始我们开始第二模块初识C语言的学习,在本模块中我们将会涉及到一下14个内容:什么是C语言、第一个C语言程序、数据类型、变量、常量、字符串+转义字符+注释、选择语句、循环语句、函数、数组、操作符、常见关键字、define定义常量和宏、指针......
  • 函数的力量:掌握C语言的基石
    目录前言标准库:C语言的百宝箱头文件:库函数的藏宝图实例分析:计算平方根的sqrt函数功能描述头文件包含的重要性库函数文档的一般格式自定义函数:释放你的编程创造力函数的语法形式 函数的比喻函数的举例 简化函数定义形参和实参形参实参实参和形参的关系retur......
  • c语言 选票系统 函数封装
    #include<stdio.h>#include<string.h>intfeipiao=0;structxm{ charname[32]; inttickets;};//选民人员输入voidxuanmin(intlen,structxmarr[]){ inti; for(i=0;i<len;i++) { printf("请输入选民的名字:\n"); scanf("%s",arr......
  • 数组的往返(数组来回遍历)C语言版
    文章目录前言题目描述一、数组的往返是什么?二、实现1.具体代码2.完整题解代码总结以及一些疑问前言本篇文章灵感来源于第十三届蓝桥杯省赛C++B组第六题修剪灌木,我的方法是老老实实地走完这个流程得到答案题目描述爱丽丝要完成一项修剪灌木的工作。有N棵灌......