🍉控制语句
2021-1-19
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

 

循环

while循环

while循环的通用形式如下:
 
 
 
什么是真?
对C而言,表达式为真的值是1,表达式为假的值是0。一些C程序使用下面的循环结构,由于1为真,所以循环会一直进行。
 
在C中,真的概念很宽!一般而言,所有的非零值都视为真,只有0被视为假。
注:不要在本应使用==的地方使用=,=表达式的值为1,可能进入死循环
 
 
新的_Bool类型
在C语言中,一直用int类型的变量表示真/假值。C99专门针对这种类型的变量新增了_Bool类型。在编程中,表示真或假的变量被称为布尔变量,所以_Bool是C语言中布尔变量的类型名。_Bool类型的变量只能储存1(真)或0(假)。如果把其他非零数值赋给_Bool类型的变量,该变量会被设置为1。这反映了C把所有的非零值都视为真。
C99提供了stdbool.h头文件,该头文件让bool成为_Bool的别名,而且还把truefalse分别定义为1和0的符号常量。包含该头文件后,写出的代码可以与C++兼容,因为C++booltruefalse定义为关键字。
 
 
带空语句的while
有时,程序员会故意使用带空语句的while语句,因为所有的任务都在测试条件中完成了,不需要在循环体中做什么。例如,假设想跳过输入到第1个非空白字符或数字,可以这样写:
只要scanf()读取一个整数,就会返回1,循环继续执行。注意,为了提高代码的可读性,应该让这个分号独占一行,不要直接把它放在测试表达式同行。处理这种情况更好的方法是使用continue语句。
 

for循环

for后面的圆括号中有3个表达式,分别用两个分号隔开。第1个表达式是初始化,只会在for循环开始时执行一次。第 2 个表达式是测试条件,在执行循环之前对表达式求值。如果表达式为假,循环结束。第3个表达式执行更新,在每次循环结束时求值。
 
可以省略一个或多个表达式(但是不能省略分号),只要在循环中包含能结束循环的语句即可:
 
省略第2个表达式被视为真,所以下面的循环会一直运行:
 
第1个表达式不一定是给变量赋初值,也可以使用printf()
在执行循环的其他部分之前,只对第1个表达式求值一次或执行一次。
 
逗号运算符
逗号运算符扩展了for循环的灵活性,以便在循环头中包含更多的表达式:
 

do while循环

while循环和for循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。这种循环被称为do while循环。
 
 

continue和break

  • break用来结束所有循环,循环语句不再有执行的机会
  • continue用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环
 
break语句可用于循环和switch语句中,但是continue只能用于循环中。尽管如此,如果switch语句在一个循环中,continue便可作为switch语句的一部分。这种情况下,就像在其他循环中一样,continue让程序跳出循环的剩余部分,包括switch语句的其他部分。
 
 

选择

if else

在C语言中,使用ifelse关键字对条件进行判断:
 
notion image
 
单独使用 if 语句的形式为:
notion image
 
 
if else语句也可以多个同时使用,构成多个分支,形式如下:
 
if语句也可以嵌套使用,例如:
 
else与if配对
如果没有花括号,else与离它最近的if匹配,除非最近的if被花括号括起来
notion image
notion image
 
一个统计单词的程序
 

switch case

switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分支的if else语句,基本格式如下:
break用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行switch中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个switch执行结束了,接着会执行整个switch后面的代码。
 
可以有多个标签语句,default语句可选。
如果choice的值是1或2,打印第1条消息;如果choice的值是3,打印第2条和第3条消息(程序继续执行后续的语句,因为case 3后面没有break语句);如果choice的值是4,则打印第3条消息;如果choice的值是其他值只打印最后一条消息。
 
 

?:条件运算符

C提供条件表达式作为表达if else语句的一种便捷方式,该表达式使用?:条件运算符。该运算符分为两部分,需要 3 个运算对象。
条件表达式的通用形式如下:
如果expression1为真(非 0),那么整个条件表达式的值与expression2的值相同;如果expression1为假(0),那么整个条件表达式的值与expression3的值相同。
 
 
 

goto

避免使用goto
 
  • C
  • 表达式和语句字符输入输出
    目录