C#学习笔记(更新中)

这篇博客详细介绍了C#的基础知识,包括bool类型、逻辑运算符、复合赋值运算符的使用,以及if语句、异常捕获、变量作用域、循环结构和调试方法。此外,还讲解了switch-case、do-while循环、for循环、break和continue的用法,以及类型转换、三元表达式和随机数的生成。在复杂数据类型部分,讨论了常量、枚举、结构、数组、函数及其参数类型,如out、ref、params。最后,文章涵盖了面向对象的概念,如类的基本语法、属性、访问修饰符,以及构造函数、静态和非静态成员的区别。
摘要由CSDN通过智能技术生成

运算符

5、bool类型

在c#中我们用bool类型来描述对或者错。
bool类型的值只有两个 一个true 一个false

bool b=20==20;
Console.WriteLine(b);
Console.ReadKey();

上面这句话,返回true

6、逻辑运算符

&& 逻辑与
||逻辑或
!逻辑非
又逻辑运算符连接的表达式叫做逻辑表达式

逻辑运算符两边放的一般都是关系表达式或者bool类型的值。
5>3 &&true

3>5||false

!表达式
逻辑表达式的结果同样也是bool类型(Y/N)

7、复合赋值运算符

int number=10;
+= :
number+=20;
number=number+20;
-=
number-=5;
number=number-5;
*=
number*=5;
number=number*5;
/=
%=

逻辑运算符练习

Console.WriteLine("小苏,输入你的成绩");
int chinese =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("小苏,你的数学成绩");
int math =Convert.ToInt32(Console.ReadLine());
bool b=chinese>90&&math>90;
Console.WriteLine(b);
Console.ReadLine();

返回true

练习2——————闰年
Console.WriteLine("输入判断的年份");
int year=Convert.ToInt32(Console.ReadLine());
//被400整除,被4整除但不被100整除
bool b=year%400==0||(year%4==0&&year%100!=0);
Console.WriteLine(b);

if语句

练习

Console.WriteLine("跪键盘的时间");
int mins=Convert.ToInt32(Console.ReadLine());
bool b=mins>60;
if(b)
{
	Console.WriteLine("不用跪键盘了");
}

流程控制

异常捕获

1、异常捕获
我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。
在你的代码中应该经常性的使用try-catch来进行异常捕获。

哪行代码有可能出现异常,你就踹它一脚。
语法:
try
{
	可能会出现异常的代码;
	....
	...
	...
}
//try和catch之间不能有其他的代码
catch
{
	出现异常后要执行的代码;
}

执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。
如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,
而是直接跳到catch中执行代码

eg.1

int number;
Console.WriteLine("请输入一个数字");
try{
	int number=Console.ToInt32(Console.ReadLine());
    Console.WriteLine(number*2);
}
catch{
	Console.WriteLine("输入的内容不能转换成数字");
}

2、变量的作用域

变量的作用域就是你能够使用到这个变量的范围。

变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。

在这个范围内,我们可以访问并使用变量。超出这个范围就访问不到了

局部变量&全局变量

3、switch-case

用来处理多条件的定值的判断。

语法:

switch(变量或者表达式的值)
{
  case 值1:要执行的代码;
  break;
  case 值2:要执行的代码;
  break;
  case 值3:要执行的代码;
  break;
  ..........
  default:要执行的代码;
  break;
}

执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所带的代码,执行完成后,遇到break。跳出switch-case结构。如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构什么都不做。

eg.1

double salary=5000;
Console.WriteLine("李四的年终评定:");
string level=Console.ReadLine();
switch(level)
{
	case"A":salary+=500;
	break;
	case"B":salary+=200;
	break;
	case"C":break;
	case"D":salary-=200;
	break;
	case"E":salary-=500;
	break;
	default:Console.WriteLine("输入有误");
	break;
}
Console.WriteLine("李四的工资是:{0}"salary);

4、循环结构

while循环:

while(循环条件)

{

  循环体;

}

执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立,如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环叫做死循环。

最简单的最常用的死循环:

while(true)
{

}

特点:先判断,再执行,有可能一遍循环都不执行。

5、break

1)、可以跳出switch-case结构。

2)、可以跳出当前循环。

break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。

6、do-while循环。

语法:

do

{

  循环体;

}while(循环条件);

执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。特点:先循环,再判断,最少执行一遍循环体。

调试

1、*程序调试

1)、写完一段程序后,想看一下这段程序的执行过程。

2)、当你写完这段程序后,发现,程序并没有按照你想象的样子去执行。

调试方法:

1)、F11逐语句调试(单步调试)

2)、F10逐过程调试

3)、断点调试

2、for循环

语法:

for(表达式1;表达式2;表达式3)

{

  循环体;

}

表达式1一般为声明循环变量,记录循环的次数

int i=0

表达式2一般为循环条件

i<10

表达式3一般为改变循环条件的代码,使循环条件终有一天不再成立

i++

执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,则执行循环体。当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,如果成立则继续执行循环体,如果不成立,则跳出for循环

3、continue

练习1:用 while continue实现计算1到100(含)之间的除了能被7整除之外所有整数的和。

int sum = 0;
int i=1;
while (i <= 100)
{
    if (i % 7 == 0)
    {
        i++;
        continue;//进行下步循环,此处continue的作用是跳过加上7的所有倍数
    }
    sum += i;
    i++;
}
Console.WriteLine(sum);
Console.ReadKey();

练习2:找出100内所有的素数

 for (int i = 2; i <= 100; i++)
            {
                bool b = true;
                for (int j = 2; j <i; j++)//j是除数,j从2开始到i
                {
                    //除尽了说明不是质数 也就没有再往下继续取余的必要了
                    if (i % j == 0)
                    {
                        b = false;
                        break;//跳出当前循环
                    }
                }

                if (b)
                {
                    Console.WriteLine(i);
                }
            }

4、类型转换

int.parse//类似convert.ToInt32()
int.TryParse

尝试着将一个字符串转换成int类型。

int number = 100;
//参数 返回值
bool b = int.TryParse("123abc", out number);
Console.WriteLine(b);
Console.WriteLine(number);

5、三元表达式

语法:

表达式1?表达式2:表达式3;

表达式1一般为一个关系表达式。

如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值。

如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值。

注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。

练习1:

//计算两个数字的大小 求出最大的
Console.WriteLine("请输入第一个数字");
int n1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数字");
int n2 = Convert.ToInt32(Console.ReadLine());
//            语法:
//表达式1?表达式2 :表达式3
int max = n1 > n2 ? n1 : n2;
Console.WriteLine(max);

6、随机数

产生随机数

    //1、创建能够产生随机数的对象
    Random r = new Random();
while (true)
{
    //2、让产生随机数的这个对象调用方法来产生随机数
    int rNumber = r.Next(1, 11);
    Console.WriteLine(rNumber);
    Console.ReadKey();
}

练习1:

Random r = new Random();
while (true)
{
    int rNumber = r.Next(1, 7);
    Console.WriteLine("请输入一个姓名");
    string name = C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值