C语言条件语句(就做个笔记,云储存一下)

循环语句

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;
}

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值