五、switch case语句

1、格式

Switch(表达式)

{

case 表达式:语句块

break;

default

break;

}

2、例题

输入年份、月份、日期,判断是否是闰年,并且输出是当年的第几天。

主要代码:

while (true)

{

Console.Write("请输入年份:");

int y = int.Parse(Console.ReadLine());

if (y >= 1 && y <= 9999)

{

if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)

{

Console.WriteLine("您输入的是闰年!");

Console.Write("请输入月份:");

int m = int.Parse(Console.ReadLine());

if (m >= 1 && m <= 12)

{

Console.Write("请输入日期:");

int d = int.Parse(Console.ReadLine());

if (((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && (d >= 1 && d <= 31)) || ((m == 4 || m == 6 || m == 9 || m == 11) && (d >= 1 && d <= 30)) || (m == 2 && (d >= 1 && d <= 29)))

{

switch (m)

{

case 1: Console.WriteLine("是{0}年的第{1}天。", y, d);

break;

case 2: Console.WriteLine("是{0}年的第{1}天。", y, 31 + d);

break;

case 3: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + d);

break;

case 4: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + d);

break;

case 5: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + d);

break;

case 6: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + d);

break;

case 7: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + d);

break;

case 8: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + 31 + d);

break;

case 9: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + d);

break;

case 10: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + d);

break;

case 11: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + d);

break;

case 12: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + d);

break;

}

Console.WriteLine("现在是{0}年{1}月{2}日!", y, m, d);

}

else

Console.WriteLine("您输入的不是正确日期!");

Console.WriteLine("{0}年是闰年!", y);

}

else

Console.WriteLine("您输入的不是正确月份!");

}

else

{

Console.WriteLine("您输入的不是是闰年!");

Console.Write("请输入月份:");

int m = int.Parse(Console.ReadLine());

if (m >= 1 && m <= 12)

{

Console.Write("请输入日期:");

int d = int.Parse(Console.ReadLine());

if (((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && (d >= 1 && d <= 31)) || ((m == 4 || m == 6 || m == 9 || m == 11) && (d >= 1 && d <= 30)) || (m == 2 && (d >= 1 && d <= 28)))

{

switch (m)

{

case 1: Console.WriteLine("是{0}年的第{1}天。", y, d);

break;

case 2: Console.WriteLine("是{0}年的第{1}天。", y, 31 + d);

break;

case 3: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + d);

break;

case 4: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + d);

break;

case 5: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + d);

break;

case 6: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + d);

break;

case 7: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + d);

break;

case 8: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + 31 + d);

break;

case 9: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + d);

break;

case 10: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + d);

break;

case 11: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + d);

break;

case 12: Console.WriteLine("是{0}年的第{1}天。", y, 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + d);

break;

}

Console.WriteLine("现在是{0}年{1}月{2}日!", y, m, d);

}

else

Console.WriteLine("您输入的不是正确日期!");

Console.WriteLine("{0}年不是闰年!", y);

}

else

Console.WriteLine("您输入的不是正确月份!");

}

}

else

Console.WriteLine("您输入的不是正确的年份!");

}

Console.ReadLine();

结果:

switch case语句的更多相关文章

  1. 为什么说在使用多条件判断时switch case语句比if语句效率高?

    在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...

  2. java中的Switch case语句

    java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的 ...

  3. switch… case 语句的用法

    switch… case 语句的用法   public class Test7 { public static void main(String[] args) { int i=5; switch(i ...

  4. if语句,if...else if语句和switch...case语句的区别和分析

    前段时间在工作中遇到了一个关于条件判断语句的问题,在if语句,if else if语句和switch case语句这三者之间分析,使用其中最有效率的一种方法. 所以就将这个问题作为自己第一篇博客的主要 ...

  5. Python | 基础系列 · Python为什么没有switch/case语句?

    与我之前使用的所有语言都不同,Python没有switch/case语句.为了达到这种分支语句的效果,一般方法是使用字典映射: def numbers_to_strings(argument): sw ...

  6. 为什么switch...case语句比if...else执行效率高

    在C语言中,教科书告诉我们switch...case...语句比if...else if...else执行效率要高,但这到底是为什么呢?本文尝试从汇编的角度予以分析并揭晓其中的奥秘. 第一步,写一个d ...

  7. JavaScript基础知识(if、if else、else if、while、switch...case语句)

    13.语句 概念:就是分号(:) 代表一条语句的结束 习惯:一行只编写一条语句:一行编写多条语句(代码可读性较差) 语句块:可以包含多条语句     "{ }"将多条语句包裹 u ...

  8. C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

    正常情况下,switch case语句是这么写的: : : ... ;break ; default : ... ;break ; } 接下来说一种不常见的,但是对于多参数有很大的帮助的写法: 先给一 ...

  9. Java基础之循环语句、条件语句、switch case 语句

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  10. python技巧 switch case语句

    不同于C语言和SHELL,python中没有switch case语句,关于为什么没有,官方的解释是这样的 使用Python模拟实现的方法: def switch_if(fun, x, y):    ...

随机推荐

  1. vue项目post请求405报错解决办法。

    步骤一: 确定ajax语法没有错误. 步骤二: 与后台对接确认请求是否打到nginx上? 步骤三: 检查nginx是否配置了事件转发,比如我们的接口是在,当前地址的8100端口上,并且接口地址上有v1 ...

  2. python---方法解析顺序MRO(Method Resolution Order)<以及解决类中super方法>

    MRO了解: 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置.而搜索的顺序就是所谓的「方法解析顺序」(M ...

  3. WCF: Retry when service is in fault state.

    Service Host: using System; using System.Configuration; using System.ServiceModel; using System.Serv ...

  4. Redis实战(三)CentOS 7上Redis主从复制

    一主二从架构 1.一主二从架构图 2.通过命令 mkdir redisCluster创建redis集群文件夹 3.通过命令mkdir 6380   mkdir 6381   mkdir 6382在re ...

  5. 从零搭建SSM框架(一)搭建工程

    工程结构 一.cnki-parent 1.新建maven project  2.pom.xml <project xmlns="http://maven.apache.org/POM/ ...

  6. 生死相依:说说JQuery中die()、live()详解[翻译]

    一个web前端工程师,应该知道jquery的.live()函数,知道它是做什么用的,但是不知它是怎么样工作的,使用起来也是不得得心应手的,甚至也没听说过.die()(去掉bind事件).即使你能熟悉这 ...

  7. Samba远程代码执行漏洞(CVE-2017-7494)复现

    简要记录一下Samba远程代码执行漏洞(CVE-2017-7494)环境搭建和利用的过程,献给那些想自己动手搭建环境的朋友.(虽然已过多时) 快捷通道:Docker ~ Samba远程代码执行漏洞(C ...

  8. Linux IO调度算法

    Linux IO调度算法  操作系统的调度 CPU调度    CPU scheduler IO调度       IO scheduler   IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移 ...

  9. Redmine数据表字段说明

    Redmine数据表结构 issues tracker_id 跟踪标签的id,外键到trakers表 project_id 外键到项目project subject 主题 description 问题 ...

  10. UNIX环境高级编程 第14章 高级I/O

    这一章涉及很多概念和函数,包括:非阻塞I/O.记录锁.I/O复用.异步I/O.readv和writev函数以及内存映射. 非阻塞I/O 在Unix中,可以将系统调用分为两种,一种是“低速”系统调用,另 ...