运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C#有丰富的内置运算符,分类如下:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
下表展示C#所支持的算术运算符,假设变量A的值为10,变量B的值为20,则:
注意:++a是先对a的值进行自增运算,然后再赋值给变量;
关系运算符
下表显示了C#支持的所有关系运算符,假设变量A的值为10,变量B的值为20,则:
逻辑运算符
下表显示了C#支持的所有逻辑运算符,假设变量A为true,变量B为布尔的false,则:
位运算符
位运算符作用于位,并逐位执行操作。&、|和^的真值表如下所示:
假如A等于60,且B=13,现在以二进制格式表示,他们如下所示:
A=0011 1100
B=0000 1101
-------------------
A&B=0000 1100 //与运算,11为1,其余为0
A|B=0011 1101 //或运算,00为0,其余为1
A^B=0011 0001 //异或运算,相同为0,不同为1
~A=1100 0011 //取反
下表勒出了C#支持的位运算符,假设变量A的值为60,变量B的值为13,则:
赋值运算符
其他运算符
下表列出了C#支持的其他一些重要的运算符,包括sizeof,typeof,和?:。
C#中运算符优先级
笔记:
其中&,|的运算结果与&&,||完全相同,但&&和||的性能更好。因为&&和||都是检查第一个操作数的值,如果已经能判断结果,就根本不处理第二个操作数
C#的判断 ##
1、if-else 组合
if("条件表达式")
{
}else if("条件表达式"){
}
else
{
}
2、switch
demo:
static void Main(string[] args)
{
Console.WriteLine("请输入您的成绩等级:");
char grade =Convert.ToChar(Console.ReadLine());
switch(grade)//switch后面的表达式必须为整型或者枚举类型,或是一个class类型,其中class有一个单一的转换函数将其转换为整形或枚举类型
{
case 'A'://case后面的表达式必须与switch中的变量具有相同的数据类型,且必须为常量
Console.WriteLine("you are so great!");
break;
case 'B':
case 'C':
Console.WriteLine("do well");
break;
case 'D'://在下一个case语句之前必须有break
Console.WriteLine("try again");
break;
default:
Console.WriteLine("this gread is invalid");
break;
}
Console.WriteLine("您的成绩为:{0}", grade);
Console.ReadKey();
}
3、嵌套switch
static void Main(string[] args)
{
Console.WriteLine("select a integer from 100,200:");
int a =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("select another integer from 100,200:");
int b= Convert.ToInt32(Console.ReadLine());
switch(a)
{
case 100:
Console.WriteLine("第一个输入的值为100进入第二关");
switch(b)
{
case 100:
Console.WriteLine("第二关输入的值仍为100");
break;
case 200:
Console.WriteLine("第二关输入的值为200");
break;
default:
Console.WriteLine("第二关输入不正确,挑战失败");
break;
}
break;
default:
Console.WriteLine("第一关挑战失败,无法继续游戏");
break;
}
Console.WriteLine("第一次输入的值为:" + a+ ",第二次输入的值为:" + b);
Console.ReadKey();
}
条件运算符 ?:
C#循环
1、while循环:如果条件为假时,会跳出循环主题,直接执行紧跟着while循环的下一句。
2、for与foreach
demo:
static void Main(string[] args)
{
int[] inbarry = new int[] {11,4,5,9,66,8,59,78,5 };
foreach(int i in inbarry)
{
Console.WriteLine("使用foreach遍历结果:"+i);
}
Console.WriteLine();
for(int i=0;i<inbarry.Length;i++)
{
Console.WriteLine("使用for遍历结果:" + inbarry[i]);
}
Console.WriteLine();
//设置集合中元素的计算器
int count = 0;
foreach(int i in inbarry)
{
Console.WriteLine("Element #{0}:{1}", count, i);
count++;
}
Console.WriteLine("Number of elements in the array:{0}", count);
}
do—While循环
do—While至少确保执行一次
static void Main(string[] args)
{
int a = 66;
do
{
Console.WriteLine("do while里面的a的值:{0}", a);
a++;
} while (a < 67);//注意此处有分号
while(a<67)//此时的a已经变为了67所以已不再成立
{
Console.WriteLine("while里面的a的值:{0}", a);
a++;
}
Console.ReadKey();
}
循环嵌套
eg:使用循环嵌套寻找2到100中的质数