循环语句
1,基本用法
if(条件成立){
........;
}
if(条件成立){
........;
}else{
........;
}
if(条件成立)
........;
else
........;
//没有大括号的话,只能识别随后的一条语句
2,优先级
算术运算符 | |
关系运算符 | 大小关系运算符 > < >= <= 判断相等运算符 == != |
赋值运算符 |
判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的.
5>3==6>4 //输出1
6>5>4 //输出0
int i,j,k;
i=2;j=3;
k = i*j==6;
printf("%d\n", k);
//输出1
int i,j,k;
i=5; j=10; k=1;
printf("%d", k>i<j);
//输出1
if ( 1<=n<=10 ); //可以通过编译,只不过什么都没有执行,从左往右判断
3,注释
// 单行注释
/* ......... */ 多行注释
4,多个if的问题
//判断正整数位数
#include <stdio.h>
int main(){
int x,count;
scanf("%d",&x);
if(x>999){
count=4;
}
if(x>99){
count=3;
}
if(x>9){
count=2;
}
if(x>0){
count=1;
}
printf("%d",count);
return 0;
}
输入1234 123 12
输出1 1 1
//我们编程写的是计算机的执行步骤。
输入1234,进入第一个if语句,count赋值4
再次成功进入第二个if语句,count更新为3.......
5,从高向低走,从低向高走原则
//判断正整数位数
//此代码只要输入,就只输出1.无法判断
#include <stdio.h>
int main(){
int x,count;
scanf("%d",&x);
if(x>0){
count=1;
}else(x>9){
count=2;
}else(x>99){
count=3;
}else(x>999){
count=4;
}
printf("%d",count);
return 0;
}
//正确写法
#include <stdio.h>
int main(){
int x,count;
scanf("%d",&x);
if(x>999){
count=4;
}else(x>99){
count=3;
}else(x>9){
count=2;
}else(x>0){
count=1;
}
printf("%d",count);
return 0;
}
//大于号时,遵循从高向低原则
小于号遵循从低向高
6,输出格式控制
可以加宽度限定词,指定数据的输出宽度
整型
printf("%3d",i);
默认输出宽度为3,如果实际宽度超出3则以实际宽度输出,如果不足3则输出右对齐,左边补空格。如果是%-3d那么就是左对齐,右边补空格.
浮点型
printf("b=%5.1f",b);
输出值占5位数,小数点占后1位,右对齐,左边补空格。
printf("%6.1f",-1.1); //输出值-1.1,左端补了2个空格
printf("%6.1f,1.3"); //输出值1.3,左端补了3个空格
7,嵌套分支
else 总是和最近的if匹配
#include <stdio.h>
int main(){
int num_1=60,num_2=30;
if (num_1==20)
if (num_2==40)
printf("MY turn");
else
printf("YOUR turn");
return 0;
}
//输出为空
8,级联if—else
if(exp1){
st1;
}else if(exp2){
st2;
}else{
st3;
}
其实第一个else与上一个if在一起
第二个else与第二个if在一起。 这个仅仅是两个if_else连在一起
9,多路分支
switch(控制表达式){
case 常量:
语句...;
break;
case 常量:
语句...;
break;
default:
语句;
}
//控制表达式,其结果只能是整型或字符型
//case 后的常量必须不同
//常量
常数 或 常数计算表达式(编译时是知道结果的)
case只是一个路牌
switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case(分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
case 1: price = 3.0; break;
default: price = 0.0; break;
}
//有两个case 1,所以这个switch语句不合法
#include <stdio.h>
int main(){
int n=4;
switch(1){
case n%2:
printf("dg");
case 3%2:
printf("saos");
}
return 0;
}
[Error] 'n' cannot appear in a constant-expression
n需定义为常量,才可以出现在case后的 常量/常量表达式中
#include <stdio.h>
int main(){
const int n=4;
switch(1){
case n%2:
printf("dg");
case 3%2:
printf("saos");
}
return 0;
}