###C语言程序设计-----C语言学习(5)#

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步!

 

###C语言程序设计-----C语言学习(5)#_第1张图片 

一.  主干知识的学习 

1.switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法,一般分3种情况。

(1)在switch语句的每个语句段中都使用break语句,这是switch语句的主要使用方法,一般使用形式为:

          switch(表达式){

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

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

                                              ········

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

                      default:                  语句段n+1;break;

下面是该语句的流程图:

###C语言程序设计-----C语言学习(5)#_第2张图片

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

(2)在switch语句中不使用break语句,

           switch(表达式){

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

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

                                              ········

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

                      default:                  语句段n+1;

区别:若不使用break语句则无法指定跳出循环,即如果表达式的值与常量表达式2的值相等,不但执行语句段2,还执行其后的所有语句段,最后跳出switch循环。

(3)在switch语句的某些语句段的末尾使用break语句,该用法可以在switch语句在执行需要执行的几个指定语句后及时跳出语句,从而实现更多的功能。

2.一个多分支结构

        如果if-else语句的内嵌语句是另一条基本的if语句,就形成了嵌套的if-else语句,它的一般形式如下:

            if(表达式1)

                  if(表达式2)语句1;

                  else     语句2;

             else

                   if(表达式3)语句3;

                   else     语句4;

该语句实现了4路分支,流程图如下:

###C语言程序设计-----C语言学习(5)#_第3张图片

注意:这里有一个匹配原则,即else和if的匹配原则,else与最靠近它的且没有与别的else匹配过的if相匹配。

 

二.  switch语句在具体问题中的应用 

 

问题1:查询自动售货机中的价格。假设自动售货机出售4种商品:薯片,爆米花,巧克力和可乐,售价分别为3.0,2.5,4.0,和3.5元。在屏幕上显示以下菜单(编号和选项),用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;查询不到5次,用户可以选择退出。当用户输入编号1~4,显示相应的商品的价格(保留一位小数);输入0,退出查询,输入其他编号,显示价格为0。

源程序:

#include 
int main()
{
	int choice,i;
	double price;
	//下面为显示菜单 
	printf("[1] select crisps\n"); 
	printf("[2] select popcorn\n");
	printf("[3] select chocolate\n");
	printf("[4] select cola\n");
	printf("[0] exit\n");
	for (i=1; i<=5; i++)  //for循环实现查询5次 
	{
		printf("Enter choice:");
		scanf("%d", &choice);  //输入数字的读入 
		if (choice==0)
		break;     //如果输入0则提前结束for循环 
		//下面是不同选择对应不同的商品及价格 
		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;
			default:price=0.0; break;   //若非指定选择则输出0.0价格	
		}
		printf("price=%0.1f\n", price);   //输出商品价格 
	}
	printf("Thanks\n");  //for语句结束,谢谢查询 
	
	return 0;
 } 

问题2:编写一个简单的计算器程序,可根据输入的运算符,对两个整数进行加,减,乘,除,取余运算,请对除数为0的情况作特别处理。

源程序:

#include 
int main()
{
	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;
}

注意:这里对于字符型数据的运用以及if语句和for语句的使用可看前面的博客。

问题3:设计一个程序用于比较三个数中的最大值

#include 
int main()
{
	printf("输入需比较的三个数:"); 
	int a,b,c;
	scanf("%d %d %d", &a,&b,&c);
	int max;
	if (a>b){
		if (a>c){
			max=a;
		} else {
			max=c;
		}
	}
	else {
		if (c

注意:这里if-else语句的具体运用可看前面的博客。

 

感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 

 

###C语言程序设计-----C语言学习(5)#_第4张图片 

 

 

 

你可能感兴趣的:(C语言学习,学习,c语言,开发语言,数据结构,c++,c#,算法)