C#学习笔记 03.01

C#学习笔记 03.01

(学习视频来自bilibili的传智播客赵老师基础教学视频)

先来一个好玩的小例子

交换两个int,不用第三个变量。
int a =1;
int b =2;
a = a - b ; 此时 a = -1,b = 2;
b = a + b ; 此时 a = -1 ,b = 1 ;
a = b - a ; 此时 a =2 , b = 1;交换完成……
很有意思的是为什么会出现这种现象,奇怪的东西应该是从第一次相减开始混进来的。
换一个写法 :
x = a - b ;
b = x + b = ( a - b ) + b 也就是 b = a ;
a = b - x = ( a - b ) + b - ( a - b ) 也就是 a = b;
其实,当我们将两个数进行运算的时候,这个得到的数字就同时拥有了这两个数的信息,是不是很有意思?也可以试着把第一句的运算关系改一下,换成+。不过不建议换成乘除,毕竟乘除法面对0这个异类的时候,表现就不那么优秀了。

运算符 + +,- -

老实讲,我倒是不是很喜欢用这个,老老实实写个a=a+1不好么。。。
++放在变量名的前面,会先对变量进行+1,再参与其他运算;
而++放在变量名的后面,那么就会先进行运算,算完了再对变量+1;
也就是,不管++写在前面还是后面,都代表了 a = a+1;这样一个语句。
如果写成++a,那么就把这个语句写在++a出现的那一行代码的前面:
b = ++a + 1;也就是 a = a + 1;b = a + 1;
b = a++ + 1;也就是 b = a + 1;a = a + 1;
多写一行吧。。。咱不差这一行。。。。。。
因为会出现这么一个麻烦的事情,当你有一个连等的式子的时候,当然,一般也没这么别扭的请款。
b = a++ + 2 + ++a;
那么就会等价成这个样子:
b = a + 2;
a = a + 1;
a = a + 1;
b = b + a;
是不是有点绕?
这是因为一元运算符的运算优先级更高。

关系运算符

用来描述两个事物之间的关系,算出来的结果是 bool 类型。
<, >, >=, <=, ==, !=
前四个很好理解,==其实就是等于,但是一个等号被赋值占用了,所以用来判断是否相等的时候就用==了,而 != 就是不等于,这个符号在不同语言里面不太一样,需要记一下咱C#用的是这个。。。

逻辑运算符

与 或 非
&& || !
这个非是不是很熟悉,不等于里面那个!是不也很好0理解记住了。
与:同真为真,有假就假;
或:有真就真,都假才假;
非:加上就是反义词;
(小时候找反义词的时候有这个就好了)
其实 & | 这两个符号也能起到相同的效果,但是因为没加上结果确定了就自动停止的功能,所以从效率上讲不合适,所以就不用了。

注意:写这个时候因为式子有点长,所以都用括号括起来吧

又一个简单的例子

闰年的判定

Console.Writeline("请输入需要判断的年号");
string year = Console.ReadLine();
int yushu = Convert.Toint32(year) % 4; //排除输入错误请看上个笔记
if( yushu == 0 )
	{ Console.WriteLine( year + "是个闰年")}
else
	{ Console.WriteLine( year + "不是闰年")}
Console.ReadKey();

分支结构 + 选择结构

其实上面咱已经用了,就是 if(){} else{}
这就诞生了另一个很好玩的用法,当我们的判断条件不唯一的时候,比如:
输入一个数,属于小于 0,0 到 10,10 以上这三个区间的哪一个。
我们就可以

Console.Writeline("请输入需要判断的数字");
string num = Console.ReadLine();
if( num < 0 )
	{ Console.WriteLine( num + "小于0")}
else if( num <= 10 )
	{ Console.WriteLine( num + "在0到10")}
else
	{ Console.WriteLine( num + "10以上")}
Console.ReadKey();
另外,还有个叫三元表达式的东西

表达式1 ?表达式2:表达式3;
如果表达式1 的结果是 true ,那么返回表达式2 ,否则 返回表达式3
其实就是 if else 针对一些赋值情况的一种简便写法。

选择结构

这个用来进行定值的判断,if那一串用来做区间的判断
switch(要判断的)
{
case 值 :要执行的代码;break;
default:要执行的代码;break;
}
来个例子,评价如果是A,就奖励100,B奖励50,C不奖励,D批评;
上代码(可运行):

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入评级");
            string pingji = Console.ReadLine();//接收评级输入
            switch (pingji)
            {
                case "A"://如果是A,就奖励100
                    Console.WriteLine("奖励100元");
                    break;
                case "B":
                    Console.WriteLine("奖励50元");
                    break;
                case "C":
                    Console.WriteLine("表现一般,没有奖励");
                    break;
                case "D":
                    Console.WriteLine("表现太差了,这样不行");
                    break;
                default:
                    Console.WriteLine("你这都输了写啥进来?");
                    break;
            }
            Console.ReadKey();
        }
    }
}

再补一个好玩的
这个东西还可以这么写:
如果A,B都奖励50元,不妨写成这样

                case "A"://如果是A,就奖励50
                case "B"://如果是A,就奖励50
                    Console.WriteLine("奖励50元");
                    break;
                case "C":
                    Console.WriteLine("表现一般,没有奖励");
                    break;
                case "D":
                    Console.WriteLine("表现太差了,这样不行");
                    break;
                default:
                    Console.WriteLine("你这都输了写啥进来?");
                    break;

异常捕捉

try
{这里写可能会出现异常的代码}
catch
{这里写出现了异常怎么处理}
例子呢,可以看前面那个笔记。。。

又一个注意事项

我们的变量都有一个叫做作用域的东西,位于上层的变量可以在下层使用,但是下层的变量不能在上层使用,就像这样:

if(true)
{int a = 1;}
Console.WriteLine(a);
这样写的话就会出错,因为变量 a 作用于 if 下的这个代码块,在外面是访问不到他的。
我们在哪里定义的这个变量,这个变量就属于哪里,所以可以这样
int a;
if(true)
{ a = 1;}
Console.WriteLine(a);
这个样子的话就可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值