C语言基础 2
条件语句(Conditionals)
if语句
if 语句被叫做条件控制结构,因为它可以在前提条件成立的情况下执行语句。因为这个原因,if 也被认为是决策结构。
语法如下:
if (表达式 expression)
执行语句 statements;
具体例子:
#include <stdio.h>
int main() {
int score = 89;
if (score > 75)
printf("You passed.\n");
return 0;
}
以上代码用Python可以写成一下样子:
score = 89
if score > 75:
print('You passed.')
关系操作符(Relational Operators)
< less than
<= less than or equal to
> greater than
>= greater than or equal to
== equal to
!= not equal to
关系操作符与Python中的使用方法一样。
C语言代码例子:
int num = 41;
num += 1;
if (num == 42) {
printf("You won!");
}
if - else 语句
if 语句中可以包括额外的else 条件,在表达式是FALSE的情况下来执行语句。
C语言代码如下:
#include <stdio.h>
int main() {
int score = 89;
if (score >= 90)// 如果分数大于等于90分
printf("Top 10%%.\n");
else // 否则的话
printf("Less than 90.\n");
return 0;
}
可以理解为:
如果 (条件成立)
执行语句1;
否则
执行语句2;
使用Python实现以上代码:
score = 89
if score >= 90:
print('Top 10')
else:
print('Less than 90')
条件表达式(Conditional Expressions)
可以使用 ?: 操作符来替代简单if-else语句, ?: 操作符只能包含一个if-else 语句。
一般的if-else语言代码如下:
#include <stdio.h>
int main() {
int y;
int x = 3;
if (x >= 5)
y = 5;
else
y = x;
return 0;
}
而使用 ?: 就很简洁,代码如下:
#include <stdio.h>
int main(){
int y;
int x = 3;
y = (x >= 5) ? 5 : x;
return 0;
}
可以理解为:
y = (条件表达式)?(成立时的值):(否则的值);
if 嵌套(Nested if Statements)
if 嵌套,顾名思义就是在 if - else 语句中再写一个或者多个 if - else 语句
C语言的代码例子如下:
#include <stdio.h>
int main(){
int score = 89;
if (score >= 90)
if (score >= 95)
printf("Perfect\n")
else
printf("Good\n")
else
printf("Less than 90\n")
return 0
}
if - else if 语句(The if-else if Statement)
和Python中的elif一个道理, 当一个要筛选三个或者更多的条件时可以使用else if语句。
C语言代码如下:
#include <stdion.h>
int main(){
int score = 89;
if (score >= 90)
printf("%s", "Top 10%\n");
else if (score >= 80)
printf("%s", "Top 20%\n");
else if (score > 75)
printf("%s", "You passed.\n");
else
printf("%s", "You did not pass.\n");
return 0;
}
使用Python实现以上代码如下:
score = 89
if score >= 90:
print('top 10%')
elif score >= 80:
print('top 20%')
elif score > 75:
print('passed')
else
print('failed')
逻辑操作符(Logical Operators)
在条件语句中可以使用逻辑操作符来进行操作。
与 and &&
C语言版本:
if (n > 0 && n <= 100)
printf("Range (1 - 100)\n")
而在Python中可以直接使用 and
if n > 0 and n <= 100:
print('Range (1 - 100)')
或 or ||
C语言版本:
if (n < 0 || n > 100)
printf("Out of range.\n")
Python版本:
if n < 0 or n > 100:
print('Out of range.')
非 not !
C语言版本:
if (!(n == 'x' || n == 'X'))
printf("Roman numeral is not 10.\n");
python 版本:
if not (n == 'x' or n == 'X'):
print('Roman numeral is not 10.')
循环(loop)
while 循环
语法如下:
while (条件表达式 expression) {
执行语句 statements
}
/**注意花括号**/
当满足条件的情况下,一直进行循环操作,知道条件不满足停止。
简单的C语言例子如下:
#include <stdio.h>
int main() {
int count = 1;
while (count < 8) {
printf("Count = %d\n", count);
count++;
}
return 0;
}
C语言中while和Python中的while操作基本类似。
Python版本:
count = 1
while count < 8:
print(count)
count += 1
for 循环
for 是用来循环固定次数的循环结构
语法如下:
for (initvalue; condition; increment) {
statements;
}
具体操作如下:
int i ;
int max = 10;
for (i = 0; i < max; i++){
printf("%d\n",i);
}
以上代码在Python中的实现如下:
for i in range(10):
print(i)
C语言中的for 循环可以包含多个表达式,各个部分用逗号隔开,比如:
for (x = 0, y = num; x < y; i++, y--) {
statements;
}
// 此处为伪代码不可运行
循环嵌套
直接上例子
C语言版本:
#include <stdio.h>
int main(){
int i, j;
int table = 10;
int max = 12;
for (i = 1; i <= table; i++) {
for (j = 0; j <= max; j++) {
printf("%d x %d = %d\n", i, j, i*j);
}
printf("\n"); /* blank line between tables */
}
return 0;
}