第三章 分支结构

#include <stdio.h>
int main(void)
{ 
	double value1,value2;
	char op;

	printf("Type in an expression:");
	scanf("%lf%c%lf",&value1,&op,&value2);
	if(op=='+'){
		printf("=%.2f\n",value1+value2);
	}else if(op=='-'){
		printf("=%.2f\n",value1-value2);
	}else if(op=='*'){
		printf("=%.2f\n",value1*value2);
	}else if(op=='/'){
		if(value2!=0){
		printf("=%.2f\n",value1/value2);
		}else{
		printf("Divisor can not be 0!\n");
		}
	}else{
		printf("Unknown operator!\n");
	}
	return 0;
}

本章节是介绍C语言中的分支语句的,有以下几种语句。

if(); if-else;else if();

switch();

这里先介绍if语句

if-else语句

一般形式:

                if(表达式)

                     语句1;

                else

                    语句2;

流程图

执行流程:先求解表达式,如果表达式为“真”,就执行语句1;否则(即表达式的值为“假”),就执行语句2。语句1和语句2总要执行一个,但是不会都执行。

if()语句

一般形式:

                if(表达式)

                语句1;

流程图

执行流程:先求解表达式,如果表达式的值为“真”,就执行语句1;否则(即表达式的值为“假”),就什么也不做。

else-if()语句

一般形式:

           if(表达式1)

                语句1;

            else if(表达式2)

                语句2;

             ……

             else if(表达式n-1)

                语句n-1;

              else

                语句n;

 执行流程:首先求解表达式1,如果表达式1的值为“真”,则执行语句1,并结束整个if语句的执行,否则,求解表达式2……最后的else处理给出条件都不满足的情况,即表达式1,表达式2,……表达式n-1的值都为“假”时,执行语句n。

                

if-else语句嵌套

一般形式:

                if(表达式1)

                        if(表达式2)语句1;

                        else  语句2;

                else

                        if(表达式3)语句3;

                        else  语句4;

else和if的匹配准则:else与最靠近它的,没有与别的else匹配过得if相匹配。 

#include <stdio.h>
int main(void)
{ 
	int value1,value2;
	char op;

	printf("Type in an expression:");
	scanf("%d%c%d",&value1,&op,&value2);
	switch(op){
	case '+':
			printf("=%d\n",value1+value2);
			break;
	case '-':
			printf("=%d\n",value1-value2);
			break;
	case '*':
			printf("=%d\n",value1*value2);
			break;
	case '/':
			if(value2!=0){
				printf("=%d\n",value1/value2);
			}else{
				printf("Divisor can not be 0!\n");
			}
			break;
	case '%':
		   if(value2!=0){
				printf("=%d\n",value1%value2);
			}else{
				printf("Divisor can not be 0!\n");
			}
			break;
	   default:
		   printf("Unknown operator\n");
		   break;
}
		return 0;		

}

switch()语句

一般形式

        switch(表达式){

                case 常量表达式1:  语句段1;break;

                case 常量表达式2: 语句段2;break;

                ………………

                case 常量表达式n: 语句段n;break;

                default:            break;                        

执行流程:首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句。

注意:

1.在switch语句中,表达式和常量表达式的值一般是整形或字符型,所有的常量表达式的值都不能相等。每个语句段都可以包括一条或多条语句,也可以为空语句。

2.switch语句中,default可以省略,如果省略了default,当表达式的值与任何一个常量表达式的值都不相等时,就什么也不执行。

3.在switch语句中不使用break语句:

break语句在switch语句中是可选的,不使用break语句的switch语句是:

        switch(表达式){

                case 常量表达式1:  语句段1;

                case 常量表达式2:  语句段2;

                …………

                case 常量表达式n:   语句段n;

                default:                     语句段n+1;

不使用break时,如果表达式的值与常量表达式2的值相等,不但执行语句段2,还执行其后的所有语句,即执行语句段2——语句段n-1。

#include <stdio.h>
int main(void)
{	char ch;
	int first=1,k;
	printf("Enter 8 characters:");
	for(k=1;k<=8;k++){
		ch=getchar();
		if(first==1){
			putchar(ch);
			first=0;  
		}else{
			putchar('-');
			putchar(ch);
	  }
}
}

字符型数据的输入和输出

字符输入函数getchar()

一般调用形式      ch=getchar();

其功能:从键盘输入一个字符,并且赋值给变量ch;

字符输出函数putchar()

一般调用形式        putchar(输出参数);

其功能:输出参数是字符型变量或者字符型常量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值