条件运算符
()?():()
A?B:C
表达式A成立就执行B否则执行C
printf("%d",(3<5)?8:9); 结果是:8
逗号运算符
(),()
逗号运算符的结果是后边表达式的结果
printf("%d",(5,6)); 结果是:6
选择控制语句
if语句
if(条件表达式){
复合语句,语句块;
}
int a = 9;
if(a>6){
printf("a>6\n"); 结果是:a>6
}
/*****************************************************/
int a = 8;
if(a<6)
printf("a<6");
printf("上面的语句不会执行\n"); 结果是:上面的语句不会执行
if(条件表达式){
复合语句,语句块;
}else{
复合语句,语句块;
}
int a = 3;
if(a>5){
printf("a>5\n");
}else{
printf("a<5\n"); 结果是:a<5
}
注意if和else之间只能有一条语句,或者有一个复合语句,否则编译会出错。
//eg:
int a = 3;
if(a>5)
printf("a>5\n");
printf("我是bug");
else{
printf("a<5\n"); 结果是:编译报错
}
if(条件表达式1)
{
}
else if(条件表达式2)
{
}
else if(条件表达式3)
{
}
.
.
.
else
{
}
在判断条件表达式时是从上往下判断,一旦有成立的表达式,执行对应的复合语句,下边的就不再判断了,各个条件判断是互斥的。
int N = 0;
float score;
printf("please input a score:\n");
scanf("%f",&score);
if(score < 0 || score > 100)
{
printf("请输入1`100之间的成绩\n");
}
else if ((N++),(score < 60))
{
printf("E\n");
}
else if ((N++),(score < 70))
{
printf("D\n");
}
else if ((N++),(score < 80))
{
printf("B\n");
}
else
{
printf("A\n");
N++;
}
printf("N:%d",N);
//eg:输入79 结果是:B
N:3
switch语句
switch(表达式)//表达式只能是字符型或整型(short int int long int)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
.
.
.
default:语句3;break;
}
#include<stdio.h>
int main()
{
int n = 0;
printf("请输入1`7的一个数\n");
scanf("%d",&n);
switch (n)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
default:
printf("输入错误请输入1`7的一个数\n");
break;
}
return 0;
}
循环控制语句
for循环
for(表达式1:表达式2:表达式3)
{
//复合语句,循环体
}
第一次进入for循环的时候执行表达式1,表达式1只执行一次
表达式2,是循环的条件,只有表达式2为真了,才执行循环体,每次进入循环体之前要判断表达式2是否为真。
每次执行完循环体后,首次执行表达式3
for (初始化表达式; 循环条件表达式; 迭代表达式)
{
// 循环体代码块
}
/*初始化表达式:在循环开始之前执行一次,并且用于初始化循环变量或设置其他必要的变量。这个表达式通常用来声明并初始化一个计数器。
循环条件表达式:在每次循环迭代之前进行检查,如果条件为真(非零),则继续执行循环体;如果条件为假(零),则跳出循环。
迭代表达式:在每次循环迭代结束后执行,用于更新循环变量或进行其他迭代操作。*/
以下是一个示例,展示如何使用 for
循环计算从 1 到 10 的整数之和:
int main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
printf("Sum: %d\n", sum);
return 0;
}
while循环
while (循环条件表达式) { // 循环体代码块 }
while
循环会在每次循环迭代之前检查循环条件,如果条件为真(非零),则会执行循环体内的代码块;如果条件为假(零),则跳出循环。
int main() {
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
printf("Sum: %d\n", sum);
return 0;
}
do { // 循环体代码块 } while (循环条件表达式);
C 语言中的 do-while
循环是一种先执行循环体,然后再检查循环条件的循环结构。也就是说,无论循环条件是否为真,循环体至少会执行一次。do-while
循环适用于需要至少执行一次循环的情况。
do
{
printf("I love you\n");
}while(0);
int main() {
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 10);
printf("Sum: %d\n", sum);
return 0;
}
在 C 语言中,break
和 continue
是用于控制循环的关键字。
-
break:
-
当遇到
break
关键字时,会立即终止当前所在的循环(for
、while
、do-while
),然后跳出循环,继续执行循环体之后的代码。 -
break
主要用于提前结束循环,即使循环条件还未达到终止的条件。
-
2.continue:
-
当遇到
continue
关键字时,会立即跳过当前迭代的剩余代码,并开始下一次循环迭代。 -
continue
主要用于越过某些特定条件不满足的迭代,但并不终止整个循环。
goto语句:
goto
是一个用于无条件转移到程序中指定标签位置的关键字。它可以使程序跳过中间步骤直接转移到目标位置。
goto 标签;
// ... 其他代码 ...
标签:
// 标签处的代码
-
goto
:关键字用于指示程序转移的目标位置。 -
标签
:用户定义的标识符,用于标记指定位置的代码段。
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (num < 0) {
goto error;
}
printf("输入的数字是:%d\n", num);
return 0;
error:
printf("错误:输入的数字不能是负数。\n");
return 1;
}
标签:语句,int,基础,break,循环,printf,表达式 From: https://www.cnblogs.com/ptm2/p/17537865.html