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 ...
随机推荐
- mybatis 遇到的问题
顺序问题:在resultmap中,result必须在association之前.否则会报错 只查出一条记录的问题 :重名的id,要起别名.而且不能忽略. mybaits错误解决:There is n ...
- 超高逼格Log日志打印
代码地址如下:http://www.demodashi.com/demo/12646.html 前言 Log日志的打印一直是一个比较头疼的事,怎样才能让自己的log显示更多信息,怎样才能让自己的log ...
- MyBatis学习小结
一款轻量级的ORM框架 全局配置文件 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> ...
- asp.net core mvc视频A:笔记3-2.表单使用
页面上呈现表单的两种方式 新建项目,增加Test控制器,增加Index视图 方式一:HTML构建表单 运行 方式二:HTML 运行 数据绑定 处理方法 调用结果 登录后返回值 默认值绑定 方式一: 控 ...
- Qemu事件处理机制简介
Qmeu 采用了基于事件驱动的架构,所有的事件都在一个事件循环(event loop)中被处理,系统中默认的事件循环是在main-loop.c 中的主循环(main loop).我们也可以使用 –ob ...
- PyQt5 GUI Programming With Python 3.6 (一)
PyQt5 PyQt5是一个基于强大的图形程式框架Qt5的python接口, 主要包含以下几个大类: ● QtCore ● QtGui ● QtWidgets ● QtMultimedia ● QtB ...
- asp.net core 系列之Response caching(1)
这篇文章简单的讲解了response caching: 讲解了cache-control,及对其中的头和值的作用,及设置来控制response caching; 简单的罗列了其他的缓存技术:In-me ...
- 浏览器登录cookie
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- Disruptor 创建过程
1 Disruptor disruptor = new Disruptor<ValueEvent>(ValueEvent.EVENT_FACTORY, ringBufferSize, ex ...
- STM32 Option Bytes位 重置为出厂设置
STM32 Option Bytes位 重置为出厂设置 JLINK 按照说明,在IAR安装目录下找到指定的运行程序JLinkSTM32.exe(D:\Program Files (x86)\IAR S ...