品味经典和自己的学习之路
一、C#基本运算符
1、C#中的运算符
与C++的类似,==、!=、<、>、<=、>=、binary +、binary -、^、&|、~、++、-- 和 sizeof(),通常在枚举时允许这些运算。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义.
2、优先级
与C++差异也不大,请关注网站http://msdn.microsoft.com/library/6a71f45d.aspx讲的比较清楚。本处不再赘述。
二、说说C#的控制流语句
1、while和do/ while
while(条件)与do/while(条件)的区别仅仅是先判断条件是否满足还是先执行的问题,简单的程序如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WhileDo
{
class Program
{
static void Main()
{
//计算1到100的和。
int i=1,m = 0;
while /*不会执行*/(i!=1)
{
m += i;
i++;
}
Console.WriteLine("i={0}\t,m={1}",i,m);
i=1;
m = 0;
do/*至少执行一次,这时i已经增加,再加入条件时要注意*/
{
m += i;
i++;
} while (i != 2);
Console.WriteLine("i={0}\t,m={1}", i, m);
//正常情况下执行程序
//在i=100时也执行了程序i,的至最后为101
while (i <= 100)
{
m += i;
i++;
}
Console.WriteLine("i={0}\t,m={1}", i, m);
i = 1;
m = 0;
do
{
m += i;
i++;
} while (i <= 100);
Console.WriteLine("i={0}\t,m={1}", i, m);
Console.ReadKey();
}
}
}
输出:
2、for和foreach
for循环语句可以转化为while语句,for循环的次数应该是已知的,有限的。但是while语句还可以适用于循环次数不定的循环。不再过多的举例论证了,还拿1到100内的加法:
for(i=1;i<=100;i++)
{
m=m+i;
}
foreach 用来遍历数组或者其他的数据项的所有元素,不能对元素进行赋值,而for语句可以。
3、switch ...case语句
下面用一段小程序说明foreach和switch....case和跳转语句的简单用法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ValidateAndMove
{
class Program
{
static void Main( )
{
string win;
int n=0;
string[] player=new string[3]{"a","b","c"};
Console.Write("请输入一个字母(a,b,c中的一个):");
win=Console.ReadLine();
switch (win)
{
case "a": Console.Write("你输入的是{0}\n", win); n = 1; break;
//如果符合条件就跳出switch语句。不再执行其中其他的语句
case "b": Console.Write("你输入的是{0}\n", win); n = 1; break;
case "c": Console.Write("你输入的是{0}\n", win); n = 1; goto default;
/*goto语句可以将语句转接到想要它执行的地方,也是switch语句中最后case贯穿default
的唯一可用的东西。*/
default :
Console.Write("暂时没人胜利!\n");
Console.Write("请输入一个字母(a,b,c中的一个):");
win=Console.ReadLine();
//foreach遍历player中的所有元素
foreach (string letter in player)
{
if (win == letter)
{
n = 1;
Console.Write("胜利的是{0}\n", win);
}
}
break;
}
if (n!=0)
Console.Write("幸运的告诉你{0}胜利",win);
else
Console.Write("平局!!");
Console.ReadKey();
}
}
}
输出: