07-C语言流程控制if、switch
目录:
一、流程控制 条件分支
1.语法格式:if(表达式1){
//表达式1为真(非0时),执行的语句部分。
//代码块由一条件或多条语句组成
}else if(){
//表达式1为0为假,执行的语句部分。
}else{
//以上条件补满足是,执行的语句部分。
}
2.在一个完整的if语句中至少要有一个if,elseif可以出现0~n次,else可以出现0~1次。
3.if else语句应用与需要根据不同条件执行代码的场合。
4.if else 语句最多只能执行一个分支,有else分支,必须选择其一执行,无else分支,可以选择其一执行,也可能不执行。
5.如果{}中仅有一条语句,可以省略{},不推荐。
练习:输入一个成绩,得到评价,>90,优;<60,不及格;其他,一般。
1)在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
#include <stdio.h>
//在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
int main()
{
char ch;
printf("请输入一个字母:\n");
scanf("%c",&ch);
if (ch >= 'a' && ch <= 'z') {
printf("转换为大写:%c\n",ch -('a'-'A'));
}else{
printf("大写:%c\n",ch);
}
return ;
}
2)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格
3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。
4)优化第二题,优A良B中C不及格D,根据分数级别,判断分数范围。
5)判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。
6)输入年、月,求某月有多少天,一共有28,29,30,31几种。
7)输入年,求该年的总天数,365、366
#include <stdio.h>
//输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格
void test()
{
int i;
printf("输入一个成绩:\n");
scanf("%d",&i);
if (i >= && i <= ) {
printf("优\n");
}else if(i >= && i < ){
printf("良\n");
}else if(i >= && i < ){
printf("中\n");
}else if(i >= && i < ){
printf("不及格\n");
}else{
printf("无效\n");
}
}
//3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。
void test2()
{
int salary;
printf("输入工资:\n");
scanf("%d",&salary);
if (salary >= ) {
printf("坐飞机回家\n");
}else if (salary >= ){
printf("坐火车回家\n");
}else if (salary >= ){
printf("坐汽车回家\n");
}else if (salary >= ){
printf("骑车回家\n");
}else if (salary >= ){
printf("步行回家\n");
}else{
printf("输入错误\n");
}
}
/*
输入分数级别ABCD
优(90-100)A
良(80-90)B
中(60-80)C
不及格(0-60)D,
根据分数级别,判断分数范围。
*/
void test3()
{
char fj;
printf("输入分数级别:\n");
scanf("%c",&fj);
if(fj == 'A' || fj == 'a'){
printf("您的分数范围在90~100间\n");
}else if(fj == 'B' || fj == 'b'){
printf("您的分数范围在80~90间\n");
}else if(fj == 'C' || fj == 'c'){
printf("您的分数范围在60~80间\n");
}else if(fj == 'D' || fj == 'd'){
printf("您的分数范围在0~60间\n");
}else{
printf("输入数据无效");
}
}
//判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。
void test4()
{
int year;
printf("输入一个年份:\n");
scanf("%d",&year);
if((year % == && year % !=) || year % == ){
printf("该年是闰年\n");
}else{
printf("该年是平年\n");
}
}
//输入年、月,求某月有多少天,一共有28,29,30,31几种。
void test5()
{
int year;
int month;
printf("请输入年、月\n");
scanf("%d%d",&year,&month);
if(month == ){
/*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
printf("%d是闰年,%d月有29天\n",year,month);
}else{
printf("%d是平年,%d月有28天\n",year,month);
}*/
printf("%d年,%d月有%d天\n",year,month, + (year % == && year % != || year % == ));
}else if(month == || month == || month == || month == ){
if((year % == && year % !=) || year % == ){
printf("%d是闰年,%d月有30天\n",year,month);
}else{
printf("%d是平年,%d月有30天\n",year,month);
}
}else{
if((year % == && year % !=) || year % == ){
printf("%d是闰年,%d月有31天\n",year,month);
}else{
printf("%d是平年,%d月有31天\n",year,month);
}
}
}
//输入年,求该年的总天数,365、366
void test6()
{
int year;
printf("输入年份:\n");
scanf("%d",&year);
/*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
printf("%d年是闰年,总天数366天\n",year);
}else{
printf("该年是平年,总天数365天\n",year);
}*/
printf("%d年,有%d天\n",year, + (year % == && year % != || year % == ));
}
int main()
{
//test();
//test2();
//test3();
//test4();
//test5();
test6();
return ;
}
作业:
1)输入四个数,求出四个数中的最大数、最小值、和
二、流程控制 开关分支(选择分支switch)
1.语法规则:switch(控制表达式){
case 常量表达式1:
语句;
break;
case 常量表达式2:
语句;
break;
……
default:
语句;
}
2. break关键字,终止switch代码块的执行。
3.控制表达式当做整型数据处理,也可以是字符型数据处理,但不能是浮点数和字符串。常量表达式必须是常量(常量和字符),不允许重复。
4.default语句,不一定在最后一行。
#include <stdio.h> int main()
{
int i =;
char ch = 'a';
/*switch (i){
case 1:
printf("一\n");
break;
case 2:
printf("二\n");
break;
default:
printf("有误\n");
}*/
switch (ch){
case 'a':
printf("1\n");
break;
case 'b':
printf("2\n");
break;
default:
printf("有误\n");
}
return ;
}
作业:
(使用switch写)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优(A)90~80良(B)80~60中(C)60~0不及格(D),根据分数级别,判断分数范围。
#include <stdio.h> int main()
{
char j;
printf("输入分数级别:\n");
scanf("%c",&j);
switch (j){
case 'A':
printf("范围在90-100\n");
break;
case 'B':
printf("范围在80-90\n");
break;
case 'C':
printf("范围在60-80\n");
break;
default:
printf("范围在0-60\n");
}
return ;
}
07-C语言流程控制if、switch的更多相关文章
- 04. Go 语言流程控制
Go 语言流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go 语言的常用流程控制有 if 和 for,而 switch 和 ...
- 运算符的应用及流程控制if,switch语句
运算符的应用 1:赋值运算符 简单赋值运算符 例如var useName='tom';//简单赋值运算符 复合赋值运算符 a+=b;//相当于a=a+b; ...
- Java流程控制,for,switch,while.break,continue,return
Java流程控制,for,switch,while.break,continue,return
- Go语言 - 流程控制 if else | for | switch case
流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...
- 9. Go语言—流程控制
一.流程控制语法 if condition_1{ }else if condition_2{ }else if condition_3{ }else{ } 二.switch分支 package mai ...
- Go语言( 流程控制)
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结 ...
- Go语言流程控制(六)
go语言的流程控制主要有if , for和switch. if else(分支结构) go语言的if判断: func main() { score:=65 if score>=90{ fmt.P ...
- C语言--流程控制
一.流程控制 1.顺序结构 *默认的流程结构,按照书写顺序执行每一条语句 2.选择结构 *对给定的条件进行判断,再根据判断结果来决定执行那一段代码 3.循环结构 *在给定条件成立的情况下,反复执行某一 ...
- JavaScrip流程控制之switch选择,for循环
swith根据表达式的值来case ,break执行跳转语句 <!DOCTYPE html> <html lang="en"> <head> & ...
随机推荐
- gulp使用心得
本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...
- 转发年浩大神的spfa算法
http://www.cnblogs.com/superxuezhazha/p/5426624.html #include<iostream> #include<stdio.h> ...
- Linux分区方案
创建三个分区 1./boot 启动分区 存放内核和启动程序 空间分配:100M 类型:ext4 2./swap 交换分区 虚 ...
- qt检测网络连接状态【只能检测和路由器的连接,不能测试到外网的连接】
#include <QCoreApplication>#include <QDebug>#include <QTextStream>#include <QDi ...
- 关于strcpy的实现.
#include <stdio.h> #include <stdlib.h> int strlen(const char *str) { ; while(*str++!='\0 ...
- php执行shell更新svn文件的方法
vim /etc/sudoers 修改内容如下: #Defaults !visiblepw Defaults visiblepw #Defaults requiretty <?php set_t ...
- rsyslog 基本组成
Facility 定义日志消息的来源,以方便对日志进行分类,facility 有以下几种: --kern 内核消息 --user 用户级消息 --mail 邮件系统消息 --daemon 系统服务消息 ...
- VS2010 win32项目windows窗体程序 向导生成代码解析
目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...
- 航道水下地形DEM构建方法比较
论文<航道水下数字高程模型的构建方法> 对航道水下地形建立DEM,技术路线:先构建TIN,手动去除多余三角边,再利用CAD ObjectARX二次开发接口中提供的几种内插方法生成grid ...
- windows下Qt Creator5.1.0编写程序以及调用OpenCV库
系统说明 最近使用opencv编写程序,程序编的差不多就学习使用QT加个界面,首先声明下本人的系统和使用的软件版本, 系统: windows xp QT IDE:QT Creator5.1.0 Ope ...