目录
操作符
运算符的分类
双目运算符:
这些运算符需要两个操作数来执行操作。
- 算术运算符:
+
,-
,*
,/
,%
- 关系运算符:
==
,!=
,>
,<
,>=
,<=
- 逻辑运算符:
&&
,||
- 赋值运算符:
=
,+=
,-=
,*=
,/=
,%=
,&=
,|=
,^=
,<<=
,>>=
- 位运算符:
&
,|
,^
,<<
,>>
单目运算符:
这些运算符只需要一个操作数来执行操作。
- 递增和递减运算符:
++
,--
- 正负号运算符:
+
,-
- 逻辑非运算符:
!
- 位取反运算符:
~
- 取地址运算符:
&
- 间接寻址运算符:
*
- sizeof 运算符:
sizeof
三目运算符:
这是C语言中唯一的三目运算符。
- 条件运算符(三元运算符):
condition ? expression1 : expression2
这样的分类有助于理解不同类型的运算符及其在表达式中的使用方式。
关系操作符(属于双目运算符)
关系运算符,用于关系表达式中。关系表达式时C语言用于比较的表达式。
关系运算符有以下几种:
- > 大于运算符
- < 小于运算符
- >= 大于等于运算符
- <= 小于等于运算符
- == 相等运算符
- != 不相等运算符
关系表达式的结果一般是0和1,0代表假1代表真 。
看代码示例:
注: 在表达区间的时候比如变量a∈(1,2),不能直接写成1<a<2这是错误的写法.
正确写法需要与逻辑运算符相互配合,下面讲到逻辑操作符的时候会展示正确的写法.
条件操作符(三目运算符)
条件运算符(三元运算符):condition ? expression1 : expression2
文字描述:如果condition为真则输出表达1若为假输出表达式2
代码示例:
逻辑操作符(双目运算符)
在C语言中,常见的逻辑操作符有以下三种:
-
逻辑与(&&):
- 表达式为真(true)的条件是:两个操作数都为真。
- 如果任何一个操作数为假,则表达式的结果为假。
-
逻辑或(||):
- 表达式为真(true)的条件是:至少有一个操作数为真。
- 如果两个操作数都为假,则表达式的结果为假。
-
逻辑非(!):
- 用于反转操作数的逻辑值,即如果操作数为真,则结果为假;如果操作数为假,则结果为真。
逻辑操作符通常与条件语句(如if语句和while循环)一起使用,以便根据不同的逻辑条件执行相应的代码块。它们也可以用于构建更复杂的逻辑表达式。
代码示例:
分支语句
C语言是一门结构化的语言。有三种结构分别是顺序结构,选择结构,循环结构。
分支语句和循环语句就是为了实现这种结构的语句.
if语句
if
语句是一种条件语句,用于根据指定的条件执行不同的代码块。if
语句的基本语法如下:
if (condition) {
// 如果条件为真,则执行这里的代码块
}
如果condition
为真(非零),则会执行if
语句后面花括号内的代码块;如果condition
为假(0),则跳过这个代码块,继续执行后面的代码。
condition
是一个表达式,可以是任何能返回值的表达式,例如关系表达式、逻辑表达式、函数调用等。如果condition
的结果为真,则执行if
语句后面的代码块,否则跳过。
if
语句还可以与else
语句一起使用,形成if-else
语句,用于在条件为假时执行另外一段代码块。if-else
语句的语法如下:
if (condition) {
// 如果条件为真,则执行这里的代码块
} else {
// 如果条件为假,则执行这里的代码块
}
在if-else
语句中,如果condition
为真,则执行第一个代码块;如果condition
为假,则执行else
后面的代码块。
除了if
和else
外,还可以使用else if
来添加更多的条件分支,形成if-else if-else
结构。例如:
if (condition1) {
// 如果条件1为真,则执行这里的代码块
} else if (condition2) {
// 如果条件2为真,则执行这里的代码块
} else {
// 如果以上条件都不为真,则执行这里的代码块
}
在if-else if-else
结构中,如果condition1
为真,则执行第一个代码块;如果condition1
为假且condition2
为真,则执行第二个代码块;如果以上所有条件都为假,则执行最后一个else
后面的代码块。该结构是可以接无限的else if的,进行多次选择判断
if
语句是C语言中最基本的控制流程之一,用于根据条件控制程序的执行路径。
代码练习实例:输入一个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印偶数。
switch语句
基本形式:
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
break;
// 可以有更多的case语句
default:
// 默认情况下执行的代码块
}
expression
是一个表达式,它的值会被与各个case
后的常量进行比较。如果某个case
的常量值与expression
的值相匹配,那么与该case
相关联的代码块将被执行。如果没有case
的常量值匹配expression
的值,那么执行default
关联的代码块(如果有);如果没有default
,则switch
语句结束。
当我们输入1时,我们发现了一个很奇怪的现象,就是该结果把1后面所有的语句都执行了,
这时候我们需要用break对其进行控制.
在case
后的常量可以是整数常量、字符常量。一旦一个case
被匹配执行,控制流会跳到该case
后的代码块,并执行其中的语句,直到遇到break
语句或者到达switch
语句的结尾。
break
语句用于退出switch
语句,如果没有break
,控制流会继续执行下一个case
的代码块,直到遇到break
或者switch
结束。
default
关键字是可选的,用于处理expression
的值与任何case
都不匹配的情况。
注:用字符常量的时候需要用''单引号。default和case的放置顺序无所谓,但一般建议default放在最后面
循环语句
循环语句是编程中用于重复执行特定代码块的结构。
while循环
while
循环是一种常见的循环结构,它在每次循环迭代之前检查一个条件,只有条件为真时才执行循环体。当条件为假时,循环结束。
以下是while
循环的一般语法结构:
while (condition) {
// 循环体
}
在这个结构中:
condition
是一个表达式,用于定义循环是否继续执行的条件。如果条件为真,循环体会被执行,否则循环结束。- 循环体是
while
语句后面花括号中的代码块,包含需要重复执行的语句。
while
循环的执行流程如下:
- 首先,计算
condition
的值。 - 如果
condition
为真,则执行循环体中的代码。 - 执行完循环体后,再次计算
condition
的值。 - 如果
condition
为真,重复执行步骤2和3;如果condition
为假,则退出循环,继续执行循环后的代码。
在使用while
循环时,需要小心确保循环体内部的代码能够改变循环条件,否则可能导致无限循环。通常,在循环体内会有一些逻辑来更新循环条件,以控制循环的执行。
代码实例:
输入一个正的整数,逆序打印这个整数的每一位
例如:
输入:1234,输出:4 3 2 1
输入:521,输出:1 2 5
for循环
for
循环是一种常见的循环结构,它提供了一种简洁的方式来执行特定次数的循环。for
循环通常用于遍历数组或执行已知次数的迭代。
语法结构:
for (表达式1; 表达式2; 表达式3) {
// 循环体
}
在这个结构中:
- 表达式2 用于初始化循环控制变量,通常是一个赋值表达式。
- 表达式2 是一个循环条件,如果为真,则执行循环体,否则循环结束。
- 表达式3 是在每次循环迭代之后执行的操作,通常用于更新循环控制变量的值。
for
循环的执行流程如下:
- 执行 表达式1,用于初始化循环控制变量。
- 计算表达式2的值。
- 如果表达式2为真,则执行循环体中的代码。
- 执行完循环体后,执行表达式3,更新循环控制变量的值。
- 再次计算表达式2的值。
- 如果表达式2为真,重复执行步骤3到5;如果表达式2为假,则退出循环,继续执行循环后的代码。
for
循环的优点之一是循环控制变量的作用范围局限于循环内部,这样可以避免循环结束后变量的污染。
代码实例:
用for循环打印1~100
do-while循环
do-while
循环是一种与while
循环类似的循环结构,但它在每次循环迭代之后检查循环条件。这意味着无论条件是否为真,循环体至少会执行一次。
以下是do-while
循环的一般语法结构:
do {
// 循环体
} while (condition);
在这个结构中:
do
关键字标识循环的开始。- 循环体是
do
和while
之间的代码块,包含需要重复执行的语句。 while
后面跟着条件表达式,用于判断是否继续执行循环。如果条件为真,则循环继续执行;如果条件为假,则循环结束。
do-while
循环的执行流程如下:
- 首先,执行循环体中的代码。
- 执行完循环体后,计算
condition
的值。 - 如果
condition
为真,则重复执行步骤1和2;如果condition
为假,则退出循环,继续执行循环后的代码。
与while
循环不同,do-while
循环保证循环体至少被执行一次,即使循环条件一开始就为假。这使得do-while
循环在某些情况下更加适用,特别是当你需要先执行循环体再判断条件时。
循环的嵌套
循环的嵌套是指在一个循环内部包含另一个循环。通过嵌套循环,可以实现更复杂的控制流和算法逻辑。在C语言中,你可以嵌套任意数量的循环,包括for
、while
和do-while
循环。
下面用利用循环的嵌套实现一个九九乘法口诀表:
代码示例:
goto语句:
goto
语句是C语言中的一种跳转语句,它允许程序直接跳转到代码中的标记(label)处,绕过常规的控制流结构,如循环和条件语句。goto
语句的使用被广泛认为是不良编程实践的一部分,因为它可能导致代码结构不清晰,使得程序难以理解和维护。
一般语法结构:
goto label;//label可以是任何表示符
label:
goto语句通常用于跳出嵌套循环中使用
代码实例:
此次分享到此结束,希望对各位有所帮助,若有错误,希望得到大家的斧正!!