标签:
首先总结一下值类型与引用类型
老师最经典的一句话:值类型的变量和值是一体的 引用类型的变量和值是分开的。
值类型的变量和值都是在线程堆栈中产生 引用类型中的变量是在线程堆栈中,值是在托管堆中 变量与值是一种引用关系!!!!!!1
看下下面的代码
static void Main(string[] args) { //值类型 变量和值是一体的 int i = 0; double x = 1.23; //引用类型 变量和值是分开的 Student student1 = new Student(); student1.Name = "小明"; Student student2 = student1; Console.WriteLine("{0}\t{1}", student1.Name, student2.Name); //有点点C语言指针的意味 student2.Name = "小王"; Console.WriteLine("{0}\t{1}", student1.Name, student2.Name); Console.ReadKey(); }
运行结果:
归纳一下:
值类型:整型 浮点型 布尔型 字符型
引用类型:所有的类,接口和委托 字符串(比较特殊) 数组 集合 哈希表......
接着简单总结一下一元运算符。
一元运算符主要就是++,--。
不过要区别运算符放在变量位置的前后顺序
i++ 是先对i进行取值 i再进行+1;
++i 是i先进行+1 再对i进行取值;
代码如下:
int i = 0; Console.WriteLine(i++);//输出结果是0 Console.WriteLine(++i);//输出结果是2
二元运算符:+ - * / %
这儿只需要注意/: /法运算的结果 与最高位的精度(类型)相同!!!!
三元运算符:?:
这个主要用于进行判断然后赋值 类似于if else的作用 不过相当简便
代码如下:
//求两个数最大值 int x = 12; int y = 1; int Result=x>y?x:y;//满足条件 则取第一个值 不满足条件取第二个值 Console.WriteLine(Result);//输出结果=12 Console.ReadKey();
赋值运算符:+= -= ...........
关系运算符:> < == >= <= !=
逻辑运算符:
! 非运算
&或者&& 与运算
| 或者|| 或运算
这儿讲解一下 &与&& |与||的区别:
A&B A和B都要进行计算 A&&B A计算结果为false 则不计算B。
A|B A和B都要计算 A||B A计算为true 则不计算B
由此可见 &&与||更为高效 合理。
位运算符:
>> 右移
<< 左移
& 与
| 或
~ 异
^ 异或
所有的位运算 都是将数值转换为二进制进行运算。
代码和详细情况如下:
int a = 12; //二进制码:1100 int b = 5 ; //二进制码:0101 //与运算 相同位数都为1 则为1 其余均为0 //结果:0100 十位数=4 int c = a & b; //结果为4 //或运算 相同位数只要一个或两个为1 则为1 其余均为0 //结果:1101 int d = a | b;//结果为13 //非运算 0取1 1取0 只针对一个数 //结果:0011 int e = ~a;//结果为3 //异或运算 相同位数相同则为1 不同则为0 //结果为0110 int f=a^b;//结果为5 //左移运算 在这儿把a移两位 //结果: 110000 int g=a<<2; //结果为48 实际上是把a乘2的移动次数的次方 //右移运算 在这儿把a移两位 //结果: 0011 int h = a >> 2; //结果为3 实际上是把a除以2的移动次数的次方
下面是跳转语句
关键字 goto
代码如下
static int Main(string[] args) { int x = 6; if (x > 0) goto large; x = -x; large: return x; }
如果x>0满足 就直接跳转到large(标签)后面的语句
一般都不提倡这种 不过在特殊情况:深层次的循环中 break只能跳出到上一层 就必须使用跳转语句彻底跳出循环。
下面是switch和case
具体的很简单 这儿主要讲解一下break再其中的运用 swich是判断语句 退出是依靠break 如果一个case 后面没有break ,则会继续执行 直到break出现。
具体应该根据实际情况来运用 如果有多个情况 都是使用一种处理办法 就不能每句话都加break了。
看下面的代码:
///输出一年每个月的天数 //输入年份: int nYear = int.Parse(Console.ReadLine()); for(int i=1;i<13;i++) { switch(i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: Console.WriteLine("{0}月有31天",i); break; case 4: case 6: case 9: case 11: Console.WriteLine("{0}月有30天",i); break; case 2: if(((nYear%4==0)&&(nYear%100!=0))||nYear%400==0) Console.WriteLine("2月有29天"); else Console.WriteLine("2月28天"); break; } }
这样可以更加简便 快捷 注意一下那个关于闰年判断的语句 与>或
标签:
原文地址:http://www.cnblogs.com/Huaran1chendu/p/4833089.html