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
请查看!
请按任意键继续. . .

时间: 2024-11-02 23:31:35

C#和.Ne学习第三天的相关文章

Windows API 编程学习记录&lt;三&gt;

恩,开始写API编程的第三节,其实马上要考试了,但是不把这节写完,心里总感觉不舒服啊.写完赶紧去复习啊       在前两节中,我们介绍了Windows API 编程的一些基本概念和一个最基本API函数 MessageBox的使用,在这节中,我们就来正式编写一个Windows的窗口程序. 在具体编写代码之前,我们必须先要了解一下API 编写窗口程序具体的三个基本步骤:             1. 注册窗口类:             2.创建窗口:             3.显示窗口: 恩,

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle&lt;T&gt;

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T> 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播,很强大,但用的时候要小心发生不必要的冲突. 先看一下它的实现思想 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以

WebService学习总结(三)——使用JDK开发WebService

WebService学习总结(三)——使用JDK开发WebService一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中)二.使用JDK开发WebService2.1.开发WebService服务器端 1.定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:复制代码 1 package me.g

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

Android学习Scroller(三)——控件平移划过屏幕 (Scroller简单使用)

MainActivity如下: package cc.cn; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; /** * Demo描述: * Scroller使用示例--让控件平移划过屏幕 * * 参考资料: * http://blog.cs

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列

Python学习第三天--数据类型

数据类型: int()  整型 float()浮点型 e记法   (有点像数学中的科学计数法) 知识点概括: 字符相加,结果为和 >>> 520 + 5201040 2.字符串相加,结果为"拼接" >>> '520'+'1314''5201314' 3.逻辑运算,python认为True=1,False=0,(True和False第一个字母必须为大写) >>> True + True 2 >>> True - Tr

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

Android学习Scroller(三)

MainActivity如下: package cc.testscroller2; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 实现可以拉动后回弹的布局. * 类似于下拉刷新的. * * 参考资料: * 1 http://gundumw100.iteye.com/blog/1884373 * 2 http://blog.csdn.net/gemmem/article/details/7321910