3.08课·········switch case及if else嵌套(日期格式)
switch case
switch (n)
{
case :
break;
case :
break;
.
.
.
case n:
break;
}
1、switch case必须与break一同使用,每一个case后面都有一个break.
2、switch后面的()不能接收小数类型的值
3、break是跳转语句,与switch case连用的时候是跳出最近的{}。
4、switch case多用于年月日的计算。
分别输入月份 几号 输出是今年的第多少天
每年的1 3 5 7 8 10 12月是31天
今年的2月是28天
其他的4 6 9 11是30天
int m1 = , m2 = , m3 = , m4 = , m5 = , m6 = ,
m7 = , m8 = , m9 = , m10 = , m11 = ;//分别定义每个月的天数,12月份只需加上前面11个月的天数即可,不需定义 Console.Write("请输入月份:");
int m = int.Parse(Console.ReadLine());
Console.Write("请输入几号:");
int d = int.Parse(Console.ReadLine());
if ((m >= && m <= ) && (d >= && d <= ))
{
switch (m)
{
case :
Console.WriteLine("第" + d + "天");
break;
case :
Console.WriteLine("第" + (m1 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d) + "天");
break;
case :
Console.WriteLine("第" + (m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d) + "天");
break;
default:
Console.WriteLine("您的输入有误!");
break;
}
}
else
{
Console.WriteLine("您的输入有误!");
}
Console.ReadLine();
输入一个年份,判断是否是闰年//普通年份是4的倍数但不能是100的倍数
//世纪年需要是400的倍数
Console.Write("请输入年份:");
int year=int.Parse(Console.ReadLine());
if((year%==&&year%!=)||year %==)
{
Console.WriteLine("您输入的是闰年");
}
else
{
Console.WriteLine("您输入的是平年");
}
}
Console.ReadLine();
输入年月日,看格式是不是正确(利用if else嵌套)
其思维导图如下:

Console.Write("请输入年份:");
int y = int.Parse(Console.ReadLine());
if(y>=&&y<=)
{
Console.Write("请输入月份:");
int m = int.Parse(Console.ReadLine());
if(m>=&&m<=)
{
Console.Write("请输入日期:");
int d = int.Parse(Console.ReadLine());
if(d>=&&d<=)
{
if(m==||m==||m==||m==||m==||m==||m==)
{
Console.WriteLine("您输入的日期格式正确:"+y+"-"+m+"-"+d);
}
else if (m == || m == || m == || m == )
{
if (d <= )
{
Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d);
}
else
{
Console.WriteLine("您输入的日期格式有误!");
}
}
else//剩下的2月份
{
if ((y % == && y % != ) || y % == )//年份是闰年
{
if (d <= )
{
Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d);
}
else
{
Console.WriteLine("您输入的日期格式有误!");
}
}
else//不是闰年,是平年
{
if (d <= )
{
Console.WriteLine("您输入的日期格式正确:" + y + "-" + m + "-" + d);
}
else
{
Console.WriteLine("您输入的日期格式有误!");
}
}
}
}
else
{
Console.WriteLine("您输入的日期格式有误!");
}
}
else
{
Console.WriteLine("您输入的月份格式有误!");
}
}
else
{
Console.WriteLine("您输入的年份格式有误!");
}
Console.ReadLine();
3.08课·········switch case及if else嵌套(日期格式)的更多相关文章
- 为什么switch...case语句比if...else执行效率高
在C语言中,教科书告诉我们switch...case...语句比if...else if...else执行效率要高,但这到底是为什么呢?本文尝试从汇编的角度予以分析并揭晓其中的奥秘. 第一步,写一个d ...
- 10-14C#基础--语句(switch....case和for...循环)
10-14C#基础--语句(2) 一.课前作业:“跟电脑猜拳” 二.switch(定义的变量,参数值)......case.... 注:switch...case大多用于值类型的判断,这里不同于if表 ...
- Android Studio快捷键switch case 轻松转换为if else
Android Studio快捷键switch case 轻松转换为if else 今天碰到的问题,没有找到资料,后面找到了方法,这个记下来,转载请注明出处:http://www.cnblogs.co ...
- java中的switch case
switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...
- 为什么说在使用多条件判断时switch case语句比if语句效率高?
在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- 运算符 与 分支语句:if ,else if,else;switch case
分支语句: if else if else : switch case --如何使用 if else if else: Console. ...
- switch...case和if...else if的判断应用
判断成绩所属等级的 两种方法 1... switch...case方法: #include<stdio.h> int main(void) { ;i <= ;++i) // ...
- go语言选择语句 switch case
根据传入条件的不同,选择语句会执行不同的语句.下面的例子根据传入的整型变量i的不同而打印不同的内容: switch i { case 0: fmt.Printf("0") case ...
随机推荐
- DB2 锁问题分析与解释
DB2 锁问题分析与解释 DB2 应用中常常会遇到锁超时与死锁现象,那么这样的现象产生的原因是什么呢.本文以试验的形式模拟锁等待.锁超时.死锁现象.并给出这些现象的根本原因. 试验环境: DB2 v9 ...
- Android中关于cursor类介绍
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈, ...
- .net用url重写URLReWriter实现任意二级域名
.net用url重写URLReWriter实现任意二级域名 这两天需要用到URLReWriter来搞那个猪头的Blog,网上看到篇好文,收藏 摘要:解释了url重写的相关知识.用asp.net实现二级 ...
- mysql中的for update
Select…For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句. 该语句用来锁定特定的行(如果有where子句,就是满足w ...
- spark sql的简单操作
测试数据 sparkStu.text zhangxs chenxy wangYr teacher wangx teacher sparksql { ,"job":"che ...
- Oracle集群和灾备解决方案介绍
Oracle本身有各种各样的解决方案,本文主要是对以下几种解决方案做一下简单的梳理. 1. Oracle Rac解决方案. Oracle Rac主要通过两台Oracle服务器来组件集群,提高Or ...
- openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的
基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...
- mysqldump默认参数add-drop-table
mysqldump默认参数add-drop-table 原创 2014年01月28日 11:35:18 9214 接到一个同事电话,说UAT环境上的一张表被删了,要恢复一下.原来是新项目UAT,从测试 ...
- 探究 Redis 4 的 stream 类型
redis 2 10 月初,Redis 搞了个大新闻.别紧张,是个好消息:Redis 引入了名为 stream 的新数据类型和对应的命令,大概会在年底正式发布到 4.x 版本中.像引入新数据类型这样的 ...
- 录音整理文字工具otranscribe简介
网址: http://otranscribe.com/ 首先载入音频文件,支持 mp3, ogg, webm, wav (HTML5 无需将文件上传至服务器,可保护隐私),然后就可以边听边整理了. 通 ...