2018年11月13日学习日志


一. 关于运算符;
1. 算术运算符;
运算符 描述 实例
+ 把两个操作数相加 A + B 将得到 30
- 从第一个操作数中减去第二个操作数 A - B 将得到 -10
* 把两个操作数相乘 A * B 将得到 200
/ 分子除以分母 B / A 将得到 2
% 取模运算符,整除后的余数 B % A 将得到 0
++ 自增运算符,整数值增加 1 A++ 将得到 11
-- 自减运算符,整数值减少 1 A-- 将得到 9

2. 关系运算符;
运算符 描述 实例
== 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

3. 逻辑运算符;
运算符 描述 实例
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

4. 赋值运算符;
运算符 描述 实例
= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-= 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*= 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/= 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%= 求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<= 左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>= 右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&= 按位与且赋值运算符 C &= 2 等同于 C = C & 2
^= 按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|= 按位或且赋值运算符 C |= 2 等同于 C = C | 2

5. 位运算符;
运算符 描述 实例
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~ 按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位。 (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
>> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111

6. 其他运算符;
运算符 描述 实例
sizeof() 返回数据类型的大小。 sizeof(int),将返回 4.
typeof() 返回 class 的类型。 typeof(StreamReader);
& 返回变量的地址。 &a; 将得到变量的实际地址。
* 变量的指针。 *a; 将指向一个变量。
? : 条件表达式 如果条件为真 ? 则为 X : 否则为 Y
is 判断对象是否为某一类型。 If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。
as 强制转换,即使转换失败也不会抛出异常。 Object obj = new StringReader("Hello");
   StringReader r = obj as StringReader;


7. 运算符的优先级:
类别  运算符  结合性
后缀  () [] -> . ++ - -   从左到右
一元  + - ! ~ ++ - - (type)* & sizeof  从右到左
乘除  * / %  从左到右
加减  + -  从左到右
移位  << >>  从左到右
关系  < <= > >=  从左到右
相等  == !=  从左到右
位与 AND  &  从左到右
位异或 XOR  ^  从左到右
位或 OR  |  从左到右
逻辑与 AND  &&  从左到右
逻辑或 OR  ||  从左到右
条件  ?:  从右到左
赋值  = += -= *= /= %=>>= <<= &= ^= |=  从右到左
逗号  ,  从左到右

8. 三元运算符:表达式?值1:值2 
当表达式为真,返回值1  ,当表达式为假,返回值2
  //获取第一个字母的值;
            Console.WriteLine("请问今天下雨了吗?");
            int a =  int.Parse(Console.ReadLine());

            int b = 1;


            string c = a == b ? "下雨了" : "没有下雨";
            Console.WriteLine(c);
            Console.ReadLine();


二. 关于if else  语句的应用:
作为流程控制语句的一种,if eles语句有多种表现形式,常见的包括下列三种;
1. If()  {};
2. If() {}else{};
3. If() {} esleif{} ;
4. If() {} else if{} else{};
5. If嵌套;

虽然表现形式多种多样,但是if语句的核心在于做出判断,进行流程控制;

//if (a == b )
            //{
            //    Console.WriteLine("你的判断是对的");
            //    Console.ReadLine();

            //}
            //else
            //{

            //    Console.WriteLine("你的判断是错的");
            //    Console.ReadLine();
            //}


三. 关于switch 语句的应用
Switch语句和if语句的功能类似,都是用来进行流程控制的,不同的是switch语句的应用范围要更小一些,但是效率更高;
语法:switch (表达式)
{
Case 值1:
语句;
Break;
Case 值2:
语句;
Break;
Case 值3:
语句;
Break;
Defaule :
语句;
Break;

 


}

 

代码实例:
Console.WriteLine("请输入你的身高:");
            int shengao = int.Parse(Console.ReadLine());
            switch (shengao)
            {
                case 1:
                    Console.WriteLine("您的身材偏瘦1");
                    break;
                case 2:
                    Console.WriteLine("您的身材层号2");
                    break;
                case 3:
                    Console.WriteLine("您的身材偏瘦3");
                    break;
                case 4:
                    Console.WriteLine("您的身材偏瘦4");
                    break;
                case 5:
                    Console.WriteLine("您的身材偏瘦5");
                    break;
                default:
                    Console.WriteLine("您不瘦啦");
                    break;


            }
            Console.ReadLine();

四. 关于for循环的应用:
For循环和前面记录的if或者switch语句类似,都是用来控制流程的,不同的是if或者switch是控制选择的,而for语句是用来控制循环的,语句结构如下:
For(int I = 0 ; I < 次数值;i++){}

For循环经常使用内外嵌套的方式来实现二位形式的数据输出;


for (int a = 1; a <= 9; a++)
            {
                for(int b = 1; b <= a; b ++ )
                {
                    Console.Write("*");

 

                }
                Console.WriteLine();

 

            }
            Console.ReadLine();

嵌套语句的精髓在于外层循环决定二维表格的行数,而内层循环决定二维表格的列数,或则叫个数,通过二者的数量来确定变量的关系,进而实现想要的效果;

五. 关于while循环的应用:
1. While循环的两种表现形式:
While(循环条件){循环体}
do{循环体} while(循环条件)
二者的区别while是先判断循环条件是否成立,成立执行循环体,do  while
是先执行一次循环体,然后再判断循环条件,这样就能达到一个效果,无论循环条件成立或者不成立,循环体都会被执行一次;

关于循环需要特别注意的是,可以在循环中使用break  和continue  语句;
Break语句的作用是跳出所在的一个循环(无论改循环应该被执行多少次,一下子跳出来,不再执行);
Continue语句的作用是跳出所在的一次循环(跳出本次循环的执行过程,其他次继续执行);
    for (int a = 1; a <= 9; a++)
            {
                for(int b = 1; b <= 9-a; b ++ )
                {

                    continue;
                    Console.Write(" ");

                  
                }
                for (int b = 1; b <= a; b++)
                {
                    Console.Write("*");

                }
                Console.WriteLine();

            }
            Console.ReadLine();


for (int a = 1; a <= 9; a++)
            {
                for(int b = 1; b <= 9-a; b ++ )
                {

                    break ;
                    Console.Write(" ");

                  
                }
                for (int b = 1; b <= a; b++)
                {
                    Console.Write("*");

                }
                Console.WriteLine();

            }
            Console.ReadLine();
六.  关于程序调试的应用:
1. 程序调试的用途:发现并解决程序中的逻辑错误,查看程序执行的业务逻辑;
2. 程序调试的三步:
根据经验和认知,在可能出现错误的位置添加断点(选中行+f9  或者直接添加);
启动调试(f5),观察变量值的变化和代码执行过程,进行分析;
解决问题;
3. 断点调试过程中:f11 表示逐行运行,f10表示逐过程运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值