c语言之 switch 和 if 的使用比较(一)
来源:互联网 发布:php 生成订单号 编辑:程序博客网 时间:2024/05/05 07:15
例1:输入一个整数score代表分数,根据分数输出等级A-E
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
/**
解题思路:2种方法
方法1:利用switch语句实现
方法2:利用if...else...语句实现
*/
程序源代码及模块化知识点拓展
模块一
1.1主函数源代码
#include <stdio.h>
//********************** 主函数 **********************************
int main(int argc,constchar * argv[])
{
int n;//定义一个整型变量,代表分数
//声明2个函数
void method1(int t);//声明方法1的函数
void method2(int a);//声明方法2的函数
//从键盘上输入一个整数
printf("请输入一个0~100的整数:\n");
scanf("%d",&n);
//若输入分数a<0或者a>100,则提醒用户重新输入
if (n<0 || n>100)
{
printf("对不起,您输入的数据有误。请重新输入一个0~100的整数!\n");
}
else
{
method1(n);//调用方法1的函数
method2(n);//调用方法2的函数
}
return 0;
}
1.2.1
1.#include <stdio.h>
1、文件包含命令的格式
#include“”包含的是一个用户定义的文件,可以是头文件,也可是普通文件。 #include<>包含的是一个系统(编译器自带)的头文件。include语句之后不需要加“;”
2、文本包含的实质
文本包含命令的功能是把指定文件内容插入该命令行位置取代该命令行,从而把制定的文件和当前的源程序文件连成一个源文件。include可以包含头文件,也可以包含文本文件,不一定要写在第一行。
1.2.2
2.int n;//定义一个整型变量,代表分数 //声明2个函数 void method1(int t);//声明方法1的函数 void method2(int a);//声明方法2的函数
1、变量的基本概念
变量代表内存的某个空间,它的取值是可以变的,是数据的基本单元。变量由变量名和变量类型两要素构成。
2、函数的声明
在调用函数中调用某函数 之前,应对被调用函数做声明。在主调函数中对被调函数作说明的目的是使编译系统知道被调用函数返回值的类型,以便在主调函数中按此种类型对返回值进行处理。若被调函数定义在主调函数之前,则无需声明。
1.2.3
3.//从键盘上输入一个整数 printf("请输入一个0~100的整数:\n"); scanf("%d",&n);
1、printf函数
标准的输出函数。输出原理:printf把要输出的内容——>输出缓冲区——>输出控制台。
2、scanf函数
标准的输入函数,接受用户从键盘上输入的内容。等待用户输入,如果不输入会一直等待,是阻塞式函数。
1.2.4
4.//若输入分数a<0或者a>100,则提醒用户重新输入 if (n<0 || n>100) { printf("对不起,您输入的数据有误。请重新输入一个0~100的整数!\n"); } else { method1(n);//调用方法1的函数 method2(n);//调用方法2的函数 } return 0;1、if...else语句
如果表达式为真则执行语句块1,否则执行语句块2
if(表达式)
{
语句块1
}else{
语句块2
}
2、函数的调用
一般形式:函数名(实际参数表);
要求函数必须有返回值的2种情况:1、函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。2、函数作为另一个函数调用的实际参数出现。
模块二:
2.1、利用switch语句的调用函数源代码
//********************** 方法1 **********************************
//方法1:利用switch语句实现
void method1(int t)
{
int x;//定义一个整数变量,表示分数
x = t/10;//将分数除10,去余取商
//根据整数x(0~10)的值,输出相应等级
switch (x)
{
//若整数x为0~5时,输出等级为A
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("方法1:您的分数为%d,等级为:A\n",t);
break;
//若整数x为6时,输出等级为B
case 6:
printf("方法1:您的分数为%d,等级为:B\n",t);
break;
//若整数x为7时,输出等级为C
case 7:
printf("方法1:您的分数为%d,等级为:C\n",t);
break;
//若整数x为8时,输出等级为D
case 8:
printf("方法1:您的分数为%d,等级为:D\n",t);
break;
//若整数x为9~10时,输出等级为E
default:
printf("方法1:您的分数为%d,等级为:E\n",t);
break;
}
}
2.2、知识点拓展
2.2.1
switch语句的格式:
switch(表达式){
case整形常量或者字符串常量:
语句;...
default:
}
计算表达式的值,用这个值和case的常量进行比较,若这个值等于某个常量值,会执行case对应的分支语句,遇到break才结束;若没有遇到break,程序会一直往下执行,直到switch语句结束。
2.2.2
switch语句的注意点:
switch(表达式)中的表达式的返回值是整形;case后的常量必须是整形常量或者字符串常量,可以为常量表达式。
模块三
3.1、利用if...else语句的调用函数源代码
//**********************方法2 **********************************
//方法2:利用if...else语句实现
void method2(int a)
{
//若输入分数a>=0 && a<60,则输出等级为A
if(a>=0 && a<60)
{
printf("方法2:您的分数为%d,等级为:A\n",a);
}
//若输入分数a>=60 && a<=69,则输出等级为B
else if(a>=60 && a<=69)
{
printf("方法2:您的分数为%d,等级为:B\n",a);
}
//若输入分数a>=70 && a<=79,则输出等级为C
else if(a>=70 && a<=79)
{
printf("方法2:您的分数为%d,等级为:C\n",a);
}
//若输入分数a>=80 && a<=89,则输出等级为D
else if(a>=80 && a<=89)
{
printf("方法2:您的分数为%d,等级为:D\n",a);
}
//若输入分数a>=90 && a<=100,则输出等级为E
else
{
printf("方法2:您的分数为%d,等级为:E\n",a);
}
}
3.2、知识点拓展
3.2.1
if语句的注意点:
1、if(条件)可以直接写分号“;”,表示什么也不干;
2、if(条件)renturn 0;程序将不会往下执行,直接退出;
3、if(1)、if(-1)表示永真,if(0)表示永假;
3.2.2
运算符的概念及分类
1、运算符是告诉编译程序执行特定算术或逻辑操作的符号。
2、按功能分类:算术运算符、关系运算符、逻辑运算符、按位运算符
3、按操作数个数分类:单目运算符、双目运算符、三木运算符
4、学习心得
1、在该例题中,由于表达的结果有多种情况,在使用条件判断时,用switch比较方便
2、通过一个例题将C语言中的很多基础知识串联起来了,这种发散式学习,对C 语言的认识更加深刻!
3、第一次写技术博客,感觉非常好,从今天开始,坚持写博客的习惯。
- c语言之 switch 和 if 的使用比较(一)
- C语言中switch case语句的实现(switch case 和 else if 的比较、区别)
- C语言选择语句的使用---if()-else和switch--case
- c语言中 switch case 和 if else执行效率的比较
- C语言字符串的比较和Switch
- C语言的选择结构 (if 语句 和 switch 语句)
- FLASH中if 和 switch 的比较 (AS3)
- If()语句 和 switch()语句 的 比较
- 设计模式——行为型模式之借助策略模式减少使用不必要的if-else if -else和switch-case(一)
- C语言比较两个数的大小使用if-else语句和条件运算符
- 【C语言】"if" "switch" "goto"
- C语言笔试题精选1---求两个数之间较大的数,不使用if、while、switch、for、?:/以及任何比较语句
- C语言之if...else PK switch...case
- C/OC 语言 if else 和switch 哪个更效率
- c语言基础switch、if、while和for基本用法
- C语言 switch和if..else的区别 以及枚举的作用
- switch case 和 if else效率的比较
- PHP下switch-case 和 if-else效率的比较
- oracle-function-lag-lead
- PHP的语言结构和函数的区别
- 在linux下用源代码编译MPICH 3.1.4
- IOS开发笔记-01按钮操作-13.上下左右移动 14.代码优化
- 数据挖掘工程师笔试及答案整理
- c语言之 switch 和 if 的使用比较(一)
- BZOJ 1512 [POI2006]Pro-Professor Szu Tarjan缩点+拓扑DP
- BZOJ 1514 _ [POI2006]ZAB-Frogs 单调队列+二分BFS
- BZOJ 1516 [POI2006]Mag-Warehouse 切比雪夫距离转曼哈顿距离
- 文本挖掘
- Java - socket双向通信例子
- Java-Socket通信 同时JSON传递与解析
- K-means
- linux由浅入深(10.1 )-- shell中的变量