第三十二课 练习和运算符的优先级
1. 各种运算符:
①数学运算符:
加+ 减- 乘* 除/ 取余%
②关系运算符(比较运算符):
> < >= <= == !=(不等于)
③逻辑运算符:
和&& 或|| 非!
2. 比较运算符要大于逻辑运算符。
例如:
bool isYoung = age>=18 && age <= 60;
比较运算符>=和<=要先运算,再运算逻辑运算符&&。
第三十二课 练习和运算符的优先级
1. 各种运算符:
①数学运算符:
加+ 减- 乘* 除/ 取余%
②关系运算符(比较运算符):
> < >= <= == !=(不等于)
③逻辑运算符:
和&& 或|| 非!
2. 比较运算符要大于逻辑运算符。
例如:
bool isYoung = age>=18 && age <= 60;
比较运算符>=和<=要先运算,再运算逻辑运算符&&。
第三十课 逻辑运算符
1. 逻辑运算符也是布尔运算符bool。
&&:
称为"逻辑与"运算符,如果两个操作数都非零,则条件为真。(比较严谨)
||:
称为"逻辑或"运算符,如果两个操作数中有任意一个非零,则条件为真。(比较委婉)
!:
称为"逻辑非”运算符,用来逆转操作数的逻辑状态,如果条件为真则逻辑非运算符将使其为假。(比较叛逆)
2. 输入一个人的年龄,判断这个人是否是青年,青年标准是18-60岁。
string a = Console.ReadLine();
int b = Convert.ToInt32(a);
bool c = (b > 18) && (b < 60);
Console.WriteLine(c);
第三十课 关系运算符和布尔类型
1. 关系运算符是布尔类型,关系运算符中的比较运算符是比较两个数字的大小的。
bool变量,其中只有两个值,true和false。
bool a = true;
true表示:是的 真的 满足条件 1
bool b = false;
false表示:不是 假的 不满足条件 0
2. 符号条件:
== 判断左边是否等于右边。
> 判断左边是否大于右边。
< 判断左边是否小于右边。
>= 判断左边是否大于或等于右边。(满足
其中一个条件返回结果就为true)
<= 判断左边是否小于或等于右边。(满足
其中 一个条件返回结果就为true)
!= 判断左边是否不等于右边。
第二十八课 自增和自减运算符
1. 自增和自减运算符:
a++;
a--;
意思是a+1,a-1。
2. 运算符的使用方法:
①
int a = 4 ;
a++;
Console.WriteLine(a);
输出结果为5。
②
int a = 4 ;
++a;
Console.WriteLine(a);
输出结果为5。
注:
以上两种方法中a++与++a是有区别的,①中a的值是先表达a的值在递增+1,②中a的值是先递增+1再表达a的值。
3. 应用在其他代码里就能看出区别了:
例1:
int a = 5;
int b = a++;
Console.WriteLine(a);
Console.WriteLine(b);
输出结果分别为:a的值为5,b的值为6.
注:
不难理解,a的值被赋值为5,但到了int b = a++;中是a的值没有变化,还没有和a++被赋值到左边去,所以a是a,++是++他们还没有被一同使用,所以a的值还是5;而b的值为6,因为已经通过运算了,a与++一起运算后的结果给了b。
例2:
int a = 5;
Console.WriteLine(++a);
Console.WriteLine(a);
输出结果为:6
6
因为++a为先递增再赋值,所以先被加了1,然后再继续运算的。
例2:
int a = 5;
Console.WrietLine(a++);
Console.WriteLine(a);
输出结果为:5
6
因为a++为先运算再递增,所以先被取值,然后再继续运算加1。
4.怎么理解a++与++a呢?
要把a与++分开,如果a在前面,那么这一行先用a的值,++部分交给下个运算;如果++在前,++与a在一起运算,说明a已经递增了。(纯属于个人理解,目前我是这么理解的,如果以后有变化再加以理解,求大神们饶命)
第二十八课 练习题和赋值运算符
第二十七课 数学运算符
1. double 小数型变量
如果变量赋值没有写出小数,完全是整数,那么输出以后也完全是整数,后面的小数会被省略掉;如果变量赋值带小数部分的数字,那么输出以后也带有小数部分的数字。
注:
double f = 5/2.0;
Console.WriteLine(f);
输出结果为:2.5
其中5或2两个数字有一个些出小数,那么输出结果就带小数部分。
第二十六课 字符串格式化输出
1. 字符串格式化:
它方便阅读和理解。
Console.WriteLine("格式字符串"(含替代标记),替换值0,替换值1,替换值2,……);
格式字符串必须用引号引起来,并与替代值之间用逗号相隔,后面就是格式化字符串公式中所用到的,相对应的各个值。
例如:
int a = 23 , b = 45;
Console.WriteLin("{0}+{1}+{2}",a,b,a+b);
其中“格式字符串”用来限定具体的输出格式,后面的a,b,a+b为相对应的替换值。
替换值分别对应0,1,2,3……
注:
格式化字符串中的公式是为了取后面相对应的值的,很机械但也很灵活。
2. 可以查找数据类型
百度:c# 数据类型 范围
3. 变量和常量
例如:
int a = 32;
a就是变量,32就是常量。
a是变化的,是个装常量的容器。
第二十五课 命名规范和命名规则
1. 变量命名不能与关键字重名。
2. 命名方法:
①(Camel命名法)驼峰命名法:
第一个单词首字母小写,之后的单词首字母都大写。
②pascal命名法:
每个单词的第一个字母都大写。
如果使用到英文单词缩写,全部使用大写。
例如:
PI HP MP
注:
变量使用驼峰命名法(Camel命名法),方法和类使用Pascal命名法。
第七课 运行第一个HelloWorld程序
1 using System;
2 namespace_001_开始
3 {
4 class Program
5 {
6 static void Main(string[] args)
7 {
8 Console.WriteLine("Hello World!");
9 }
10 }
11 }
第一行:
引入一个命名空间。
第二行:
namespace: 名字空间namespace相当于windows操作系统中的文件夹,因为现在的程序大多都是大项目或是代码不是一个人来完成的,难免会有变量声明时出现重名的现象,比如程序员A定义了一个变量x程序员B也定义了一个x,这时为了精确定位是哪个x用namespace加以限制就可以了,比如A的x在一个叫 proA的名字空间里,B的在proB的名字空间里那么对x定位时可以直接用proB::x或proA::x来表示具体的x,是不是和windows里的c:\programe files和d:\programe files很相似呢,就这个原理啦~
第四行:
变量class和变量名Program。
第六行:
使用c#中的一个main方法。
第二十四课 变量的交换
1. 变量交换需要引入第三个变量协助完成。
最原始的方法,但很直观。
2. 利用两个变量相加的和来完成交换:
例如:
int a =50;
int b = 5;
a = a + b;
b = a - b;
a = a - b;
Console.WriteLine(a);
Console.WriteLine(a);
输出结果为:5
50
3. 第一种方法较第二种方法快,虽然多申请了个变量,但运算速度上要比第二种方法快些,并且有直观性。
temp临时变量
第二十一课 怎么得到用户输入
1. 输入:
Console.ReadLine();
2. 输入后输出:
String str = Console.ReadLine();
Console.WriteLine(str+"-");
在输出窗口键入要输出的字符串后回车,然后被输出在它的下一行,结果为你的输入+-。
3. 将数字字符串转换成相应的数字:
String str = Console.ReadLine();
int strint = Convert.ToInt32(str);
Console.WriteLine(strint+"-");
例如:
当我们输入12时,输出结果为12-,输出的12为可以参与运算的数字,而输入时的12为一个字符串。
其中,Convert.ToInt32(str);是C#提供的一种工具方法,也就是老师经常说的方法。
注:
只能将数字的字符串转换成相应的数字,其他形式的字符串则不能转换,比如:“tb”"12.4"就不能被转换成相应的数字,因为他们不是数字类型或整数类型。
简化缩写将数字型字符串转换数字型缩写语句:
int a=Convert.ToInt32(Console.ReadLine());
如:
String str = Console.ReadLine();
int strInt = Convert.ToInt32(str);
int a=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(strInt + "-" +a);
需要输入一次数字字符串,回车,再输入一次数字字符串,再回车就能得到输出结果了,因为,有两次输入和两处转换。
第20课 字符串的声明和简单拼接操作
1. char a = '1';
int b = a;
Console.WriteLine(a);
Console.WriteLine(b);
输出结果为:1
49
注:当字符类型为字符串类型char时,‘1’输出为字符串1,不是数字而是字符串,不能参与运算的1,当赋值给整数型b以后,字符‘1’则变成了相应的数字49存储在整数类型名为b中。
2. \ 为转义字符。
char a = '\n'; //输出为n。
char a = '\\'; //输出为\。
char a = '\"'; //输出为"。
3. Console.WriteLine("c:\\a\\b\\c");
Console.WriteLine(@"c:\a\b\c");
它们的输出结果都为:c:\a\b\c
其中@的用法是将引号内的转义字符\失效,而第一个里面的("c:\\a\\b\\c")转义字符都有效。
4. 字符串的声明:
string str = @ "c:\\a\\b\\c";
声明字符串,加@符号后,双引号中的\字符就没有转义的功能,直接就是c:\\a\\b\\c,加@符号的字符串是可以换行的,并且输出后保持换行。
5. 如何在@"c:\\a\\b\\c"中加入引号:
@"c:\\a\\b\\c"中可以用两个引号("")表示加入一个引号。
例如:
string str = @ "c:\a\""b\c";
Console.WriteLine(str);
输出的结果为:c:\a\""b\c
6. 字符串拼接的几种形式:
①string str = "123" + "456";
Console.WriteLine(str);
输出结果为:123456
②也可以用变量+字符串来拼接:
string str = "123" + "456";
string str2 = "str"+yyyy;
Console.WriteLine(str2);
输出结果为:123456yyyy
③Console.WriteLine("www"+123);
输出结果为:www123
注:用+将两段字符串拼接在一起,+两端的字符串都分别用引号引起来。
7. char和string的区别:
char是字符类型,string是字符串类型。String可以看作是char组成的列表。
第十九课 字符类型和对应的整数
1. 字符类型里面只能存放一个字符。
2. 没一个字符通过底层存储时都会转变成01的形式,所以也是整数类型变量。
例如:
char a = "c"; //赋予字符型a值为“c”。
int b = a; //将字符型变量赋值给整数类型b。
问:赋值没有弄明白。字符型'a'不是给了变量b了么,怎么还能出现99呢,它不是字符么?
猜:是不是变量类型不同,所以就会根据变量类型而变化掉了?
3. 强制类型转换
int a = 97; //整数型可以存储上亿的变量。
char b = (char)a; //字符型只可以存储几百,等同于将大个的东西强塞进小容器里,那么这种就是强制塞进去的,一部分数据可能会丢失。
Console.WriteLine(a);
Console.WriteLine(a);
输出结果为:
97
a
第十八课 练习题
1. 声明变量时可以连续写在一起。
例如:
int a =1,b = 2,c = 3;
2. Console.WriteLine("a+b" + a + b);
结果为:a+b38
注:字符串与后面数字为拼合关系,“a+b”+a就为a+b3,后面的+b同样也和之前的字符串a+b3是拼合关系,最后打印出来就是a+b38。
3. Console.WriteLine("a+b" +( a + b));
注:由于优先级的关系,先运算括号内的(a+b)为11,然后与字符串拼合为a+b11。
第十七课 判断结果练习
1. 当变量中有数据时,再放数据进去,前面的数据就会被覆盖,变成后放进来的数据。
2. 变量需要先声明再使用,顺序不能颠倒。
第十六课 变量的声明和赋值
储存计算机数据的容器叫做“变量”,我们需要创建变量来存储相应类型的数据。
我们把变量的创建叫做声明变量。
例如:
//创建变量。
//创建了一个数据的容器,容器的名字叫做age(自己起的名字),容器的类型是int(整数型,是固定的,存放什么类型数据就创建什么类型的变量容器)。
//声明了一个变量,变量的名字是age。
//int称为变量类型,age称为变量名。
int age;
//向容器里面放东西,这个过程叫做赋值。
age = 10;
注:
1. int 整数型变量;
double 小数类型变量;
char 字符型变量;
2. 变量名不可以重名的。
3.变量名是有大小写区分的,是有英文字母和下划线组成的,不能以数字开头。
整数:7 -8 0 234
浮点数(小数):4.0 -2.5
字符(用单引号引起来的):'a' ' .' ' A '
字符串:“Hello” "abc" "www.sikideu.com"
以上都是存储在内存中的小格子里面。
输出语句:
//有换行的输出:WriteLine
Console.WriteLine("www.sikiedu.com");
//没有换行的输出:Write
Console.Write("Hello world!");
转义字符:
\n 可以实现字符串换行
\t 制表符
break是终止并且跳出整个语句结构
Continue是跳出这个当前循环语句并且执行下一个循环语句
Return是终止这个语句,并且会返回一个值