c#入门之分支语句使用方法(三元运算符、if语句、switch语句)

三元运算符:?

很多语言中都有这个运算符,原理都是一样的,区别可能就在于书写的格式上。习惯了excel的方式,总想把多个表达式用 , 号隔开,呵呵。在C#的三元运算符 ? 中,返回的两个表达式之间,使用 : 号隔开,而不是 , 号,注意了:

复制代码 代码如下:

string h = (k<10) ? "k小于10":"k大于或等于10";

当然,这种表达式适合简单的比较后返回值处理,但对于根据比较结果而执行大量的代码就不太适用了。

IF语句

IF语句没有返回值(不像 ? ),而且可以执行复杂的语句代码块,使用 { } 号包围起来就OK了。和其它的语言差不多:if……elseif……else……,还是举个例子吧,看看编译的效果:

复制代码 代码如下:

string msg;
double i, j;
Console.WriteLine("请输入第1个数的值:");
i = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入第2个数的值:");
j = Convert.ToDouble(Console.ReadLine());
if (i>j)
{
    msg = "大于";
}else if (i == j)
{
    msg = "等于";
}else
{
    msg = "小于";
}
Console.WriteLine("第一个操作数 {0} 第二个操作数", msg);
Console.ReadKey();

这个例子比较简单,但是却从中看出一个编程思想。换作以前,自己肯写会在每个if语句块中加入Console.WriteLine来输出结果,而这儿就精简到只需要一条输出语句。以后要在这方面多注意。

switch语句

IF语句虽然好用,但是遇到离散的值,用IF来比较,就会显得很不好读。另外,switch是将表达式的值与可选项进行匹配,而不是类似if的条件判断(>、<)。被匹配的值必须是常数值,可以为字面值(1、2、3),或者是常量:

复制代码 代码如下:

const string myName = "karli";
const string sexyName = "angelina";
const string sillyName = "ploppy";
string name;
Console.WriteLine("请输入你的姓名:");
name = Console.ReadLine();
switch(name.ToLower())
{
    case myName:
        Console.WriteLine("你和我有相同的名字,{0}", myName);
        break;
    case sexyName:
        Console.WriteLine("哇~,{0}名字好性感哦。", sexyName);
        break;
    case sillyName:
    case "h":
        {
        Console.WriteLine("{0}这名字真是太漂了~~", sillyName);
        Console.WriteLine("那当然~");
        break;
        }
    default:
        Console.WriteLine("hello {0}", name);
        break;
}
Console.ReadKey();

每个case执行后的语句,都需要放置一个break,包括default也需要。另外,case也可以多个堆叠,只要其中一个满足条件,就会执行后面的语句。而在case后,也可以使用 {} 把语句块包围起来,执行多条语句。

结语

其实在学习过程中,示例的编写、调试通过是很重要的,不止加深了印象,还会引发你的思考。当然,要是有一些小的程序练练手,是非常不错的哈,大家有需求或想法的话可以联系我哈。

时间: 2014-04-12

switch实现一个两数的运算代码示例

具体代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&quo

浅谈python为什么不需要三目运算符和switch

对于三目运算符(ternary operator),python可以用conditional expressions来替代 如对于x<5?1:0可以用下面的方式来实现 1if x<5else 0 注: conditional expressions是在python 2.5之前引入的,所以以上代码仅适用于2.5以及之后的版本 对于2.5之前的版本,可以用下面这种形式 X<5and1or 0 对于switch,我们完全可以用dictionary来实现,看下面的例子 >>>d

浅谈python中copy和deepcopy中的区别

在下是个编程爱好者,最近将魔爪伸向了Python编程.....遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy). 首先说一下deepcopy,所谓的深度复制,在这里我理解的是完全复制然后变成一个新的对象,复制的对象和被复制的对象没有任何关系,彼此之间无论怎么改变都相互不影响. 然后说一下copy,在这里我分为两类来说,一种是字典数据类型的copy函数,一种是copy包的copy函数. 一.字典数据类型的copy函数

浅谈python中列表、字符串、字典的常用操作

列表操作如此下: a = ["haha","xixi","baba"] 增:a.append[gg] a.insert[1,gg] 在下标为1的地方,新增 gg 删:a.remove(haha) 删除列表中从左往右,第一个匹配到的 haha del a.[0] 删除下标为0 对应的值 a.pop(0) 括号里不写内容,默认删除最后一个,写了,就删除对应下标的内容 改:a.[0] = "gg" 查:a[0] a.index(&q

浅谈Python数据类型之间的转换

Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式字符串 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列 s 转换为一个元组 list(s) 将序列 s 转换为一个

浅谈Python 字符串格式化输出(format/printf)

Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下: # 例:字符串格式化 Name = '17jo'   print 'www.%s.com'%Name   >> www.17jo.com Name = '17jo' Zone = 'com' print 'www.%s.%s'%(Name,Zone) >> www.17jo.com 字符串格式化时百分号后面有不同的格式符号,代表

浅谈Python基础之I/O模型

一.I/O模型 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别? 这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blockin

浅谈python for循环的巧妙运用(迭代、列表生成式)

介绍 我们可以通过for循环来迭代list.tuple.dict.set.字符串,dict比较特殊dict的存储不是连续的,所以迭代(遍历)出来的值的顺序也会发生变化. 迭代(遍历) #!/usr/bin/env python3 #-*- coding:utf-8 -*- vlist=['a','b','c'] vtuple=('a','b','c') vdict={'a': 1, 'b': 2, 'c': 3} vset={'a','b','c'} vstr='abc' for x in vl

浅谈Python中函数的参数传递

1.普通的参数传递 >>> def add(a,b): return a+b >>> print add(1,2) 3 >>> print add('abc','123') abc123 2.参数个数可选,参数有默认值的传递 >>> def myjoin(string,sep='_'): return sep.join(string) >>> myjoin('Test') 'T_e_s_t' >>>

浅谈Python中用datetime包进行对时间的一些操作

1. 计算给出两个时间之间的时间差 import datetime as dt # current time cur_time = dt.datetime.today() # one day pre_time = dt.date(2016, 5, 20) # eg: 2016.5.20 delta = cur_time - pre_time # if you want to get discrepancy in days print delta.days # if you want to get

浅谈python 四种数值类型(int,long,float,complex)

Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: del var1[,var2[,var3[