今天主要学习C语言中的分支结构和循环结构。我在此分享一下我写的if语句、switch语句、while循环等代码,并分享一些常见的编程技巧和注意事项。
1. if语句的基本用法
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
这是一个嵌套的if语句。注意else总是与最近的未匹配的if配对。
2. 比较运算符与赋值运算符
int main()
{
int a = 0;
int b = 2;
int c = 3;
c = (a == b); // ==是比较运算符,返回0或1,赋值给c
printf("%d", c);
return 0;
}
==是比较运算符,而=是赋值运算符,别把这两个搞混,建议在比较时将常量放在前面,如if(2 == a),这样如果误写为if(2 = a),编译器会报错。
二、逻辑运算符与复合条件
1. 逻辑与(&&)和逻辑或(||)
int main()
{
int a = 0;
int b = 5;
int c = 3;
if (a<b && b<c) // 正确表示a<b<c的方式
printf("hehe");
else
printf("haha");
}
直接写a<b<c是错误的,因为会先计算a<b得到0或1,再与c比较。
2. 三目运算符
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d", &a, &b);
c = ((a == b) ? 3 : 5); // 三目运算符
printf("%d", c);
return 0;
}
三目运算符可以简洁地实现简单的条件赋值。
三、switch语句
int main()
{
int a = 0;
scanf("%d", &a);
switch (a % 3)
{
case 0:
printf("余数是0");
break;
case 1:
printf("余数是1");
break;
case 2:
printf("余数是2");
break;
}
return 0;
}
关键点:
switch后的表达式必须是整型或字符型
每个case后要加break,否则会继续执行下一个case
default负责处理不符合任何case的情况
四、循环结构
1. 基本while循环
int main()
{
int a = 1;
while (a <= 10)
{
printf("%d\n", a);
a++;
}
return 0;
}
int main()
{
int n = 0;
int l = 0;
scanf("%d",&n);
while (n > 0)
{
l = n % 10;
n /= 10;
printf("%d\n", l);
}
return 0;
}
这段代码用while循环将一个整数的各位数字逆序输出
闰年判断:
if (((y % 4 == 0) && !(y % 100 == 0)) || (y % 400 == 0))
逻辑运算符的短路特性:
i = a++ || ++b || d++;
当a++为真时,后面的表达式不会执行。
工作日判断:
switch (a)
{
case 1...5:
printf("工作日");
break;
case 6...7:
printf("休息日");
break;
default:
printf("无效输入");
}