C#和.Ne学习第三天

(主要是传智播客的赵剑宇老师上课的笔记,由于这几天的课和以前上C学C语言和C++几乎都学过所有开始跳着学,在此感谢赵剑宇老师)

1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,
但是,如果两个类型的变量不兼容,比如string与int或者string与double,这时候我们可以使用一个叫做Convert的转换工厂进行转换。
注意:使用Convert进行类型转换,也需要满足一个条件:
面上必须过的去,看起来能转换。

练习1

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication6
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string lanuge;
14             string math;
15             Console.WriteLine("语文:");
16             lanuge = Console.ReadLine();
17             Console.WriteLine("数学:");
18             math = Console.ReadLine();
19 
20             decimal sum = Convert.ToDecimal(lanuge)+Convert.ToDecimal(math);
21             Console.WriteLine("总成绩:{0}", sum);
22         }
23     }
24 }
1

输出结果:
语文:
100
数学:
100
总成绩:200
请按任意键继续. . .

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication6
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string name;
14             string lanuge;
15             string math;
16             string english;
17             Console.WriteLine("你的名字:");
18             name = Console.ReadLine();
19             Console.WriteLine("语文:");
20             lanuge = Console.ReadLine();
21             Console.WriteLine("数学:");
22             math = Console.ReadLine();
23             Console.WriteLine("英语:");
24             english = Console.ReadLine();
25 
26             decimal sum = Convert.ToDecimal(lanuge)+Convert.ToDecimal(math)+Convert.ToDecimal(english);
27             decimal average = sum / 3;
28             Console.WriteLine("姓名:", name);
29             Console.WriteLine("总成绩:{0}分", sum);
30             Console.WriteLine("平均成绩:{0}分", average);
31         }
32     }
33 }
2

输出结果:
你的名字:
007
语文:
100
数学:
100
英语:
100
姓名:
总成绩:300分
平均成绩:100分
请按任意键继续. . .

2、算数运算符
++
{
++分两种:
结果都是变量加1
1、前++
例:
int t = 10;
int i = ++t;
那么i = 11, t = 11;
2、后++
int t = 10;
int i = t++;
那么i = 10, t = 11;
}
--
{
--分两种:
结果都是变量减1
1、前--
int t = 10;
int i = --t;
那么i = 9, t = 9;
2、后--
int t = 10;
int i = t--;
那么i = 10, t = 9;
}

3、
对于向加加或者减减这样只需要一个操作数就能完成的运算,我们称之为一元运算符。
+ - * / % 对于这些需要两个或以上才能完成运算的操作符,我们称之为二元运算符。
一元运算符的优先级要高于而元运算符。
如果在一个表达式当中,既有一元运算符,又有二元运算符,我们首先计算一元运算符。

int number=10;
int result=10 + ++number;

4、关系运算符
>
<
>=
<=
==
!=
关系运算符是用来描述两个事物之间的关系
由关系运算符连接的表达式称之为关系表达式。
5、bool类型
在c#中我们用bool类型来描述对或者错。
bool类型的值只有两个 一个true 一个false

6、逻辑运算符
&& 逻辑与
C#中&&与&区别
bool b = 5>6&&6>7;
当5>6已经不成立的时候,不会去判断6>7
而bool b = 5>6 & 6>7,当5>6已经不成立的时候,还会去断送6>7,
没有&&效率更好。
||逻辑或
C#中||与|区别
bool b = 5<6&&6<7;
当5<6已经成立的时候,不会去判断6<7
而bool b = 5<6 & 6<7,当5<6已经成立的时候,还会去断送6<7,
没有||效率更好。
!逻辑非
又逻辑运算符连接的表达式叫做逻辑表达式

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

3>5||false

!表达式
逻辑表达式的结果同样也是bool类型

7、复合赋值运算符
int number=10;
+= :
number+=20;
number=number+20;
-=
number-=5;
number=number-5;
*=
number*=5;
number=number*5;
/=
%=
顺序结构:程序从Main函数进入,从上到下一行一行的执行,不会落下任何一行。
分支结构:if if-else
选择结构:if else-if switch-case
循环结构:while do-while for foreach

8、
if语句:
语法:
if(判断条件)
{
要执行的代码;
}
判断条件:一般为关系表达式或者bool类型的值。
执行过程:程序运行到if处,首先判断if所带的小括号中的判断条件,
如果条件成立,也就是返回true,则执行if所带的大括号中的代码,
如果判断条件不成立,也就是返回一个false。则跳过if结构,继续向下执行。

if结构的特点:先判断,再执行,有可能一行代码都不执行
用于一种情况的判断。
练习2

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication9
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int age;
14             Console.WriteLine("请输入你的年龄:");
15             age = Convert.ToInt32(Console.ReadLine());
16 
17             if (age > 23)
18             {
19                 Console.WriteLine("你到了结婚的年龄了!");
20             }
21         }
22     }
23 }
1

输出结果:
请输入你的年龄:
25
你到了结婚的年龄了!
请按任意键继续. . .

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication9
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             decimal chinese, music;
14             Console.WriteLine("请输入老苏的语文:");
15             chinese = Convert.ToDecimal(Console.ReadLine());
16             Console.WriteLine("请输入老苏的音乐:");
17             music = Convert.ToDecimal(Console.ReadLine());
18 
19             if ((chinese > 90 && music > 80) || (chinese == 100 & music > 70))
20             {
21                 Console.WriteLine("奖励100元!");
22             }
23         }
24     }
25 }
2

输出结果:
请输入老苏的语文:
100
请输入老苏的音乐:
77
奖励100元!
请按任意键继续. . .

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication9
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string name;
14             string key;
15 
16             Console.WriteLine("请输入你的用户名:");
17             name = Console.ReadLine();
18             Console.WriteLine("请输入你的密码:");
19             key = Console.ReadLine();
20 
21             if (name == "admin" && key == "mypass")
22             {
23                 Console.WriteLine("登录成功!");
24             }
25         }
26     }
27 }
3

输出结果:
请输入你的用户名:
admin
请输入你的密码:
mypass
登录成功!
请按任意键继续. . .

9、if-else
语法:
if(判断条件)
{
执行的代码;
}
else
{
执行的代码
}
执行过程:程序执行到if处,首先判断if所带的小括号中的判断条件是否成立,
如果成立,也就是返回一个true,则执行if所带的大括号中的代码,
执行完成后,跳出if-else结构。
如果if所带的小括号中的判断条件不成立,也就是返回一个false,
则跳过if语句,执行else所带的大括号中的语句,执行完成后,跳出if-else结构。

if-else特点:先判断,再执行,最少都要执行一条代码。
用于两种情况的判断

注意:else永远跟离它最近的那个if配对


10、if else-if
作用:用来处理多条件的区间性的判断。
语法:
if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
........
else
{
要执行的代码;
}
执行过程;程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,
则执行该if所带的大括号中的代码,执行完成后,立即跳出if else-if结构。
如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带
的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,
如果每个if所带的判断条件都不成立,就看当前这个if else-if结构中是否存在else。
如果有else的话,则执行else中所带的代码,如果没有else,则整个 if-else if神马都不做。
else可以省略。

课上练习:
练习3

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication1
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string key;
14 
15             Console.WriteLine("请输入密码:");
16             key = Console.ReadLine();
17 
18             if (key == "88888")
19             {
20                 Console.WriteLine("密码正确!");
21             }
22             else
23             {
24                 Console.WriteLine("请再输入一次:");
25                 key = Console.ReadLine();
26                 if (key == "88888")
27                 {
28                     Console.WriteLine("密码正确!");
29                 }
30             }
31         }
32     }
33 }
1

输出结果:
请输入密码:
7
请再输入一次:
88888
密码正确!
请按任意键继续. . .

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication1
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string name;
14             string key;
15 
16             Console.WriteLine("请输入用户名:");
17             name = Console.ReadLine();
18             Console.WriteLine("请输入密码:");
19             key = Console.ReadLine();
20 
21             if (name == "admin" && key == "88888")
22             {
23                 Console.WriteLine("登录正确!");
24             }
25             else
26             {
27                 if (name != "admin")
28                 {
29                     Console.WriteLine("用户名不存在!");
30                 }
31                 else
32                 {
33                     Console.WriteLine("密码错误!");
34                 }
35             }
36         }
37     }
38 }
2

输出结果:
请输入用户名:
007
请输入密码:
88888
用户名不存在!
请按任意键继续. . .

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication1
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int age;
14             string yesNo;
15 
16             Console.WriteLine("请输入你的年龄:");
17             age = Convert.ToInt32(Console.ReadLine());
18 
19             if (age >= 18)
20             {
21                 Console.WriteLine("允许查看!");
22             }
23             else if (age < 10)
24             {
25                 Console.WriteLine("不允许查看!");
26             }
27             else if (age >= 10 && age < 18)
28             {
29                 Console.WriteLine("提示用户是继续查看(yes或no)?");
30                 yesNo = Console.ReadLine();
31                 if (yesNo == "yes" || yesNo == "Yes" || yesNo == "YES")
32                 {
33                     Console.WriteLine("请查看!");
34                 }
35                 else if (yesNo == "no" || yesNo == "No" || yesNo == "NO")
36                 {
37                     Console.WriteLine("程序即将退出!");
38                 }
39                 else
40                 {
41                     Console.WriteLine("yes或no输入错误!");
42                 }
43             }
44         }
45     }
46 }
3

输出结果:
请输入你的年龄:
15
提示用户是继续查看(yes或no)?
yes
请查看!
请按任意键继续. . .

posted @ 2016-05-03 21:26  静梦亭  阅读(485)  评论(0编辑  收藏  举报