C# 基础学习第一天
来源:互联网 发布:js字符串转正则表达式 编辑:程序博客网 时间:2024/05/18 20:11
C#基础
.Net开发环境
开发工具:visual studio
语言 C# VB.Net F#
.net Framework 提供函数库、类库提供公共类的函数库
应用程序---.net Framework----CLR----操作系统
应用程序与操作系统隔一层作用:中间转换作用,不管操作系统是XP Window 不直接与操作系统打交道,是与.net Framwork打交道,至于.net Framwork怎么与操作系统打交道,不需要知道。
优点:更安全,更省心,代码托管,罕用指针,垃圾回收。平台无关语言无关,VB写的类 C#也可以调用。
.net 1.1 2.0 3.X 4.X 向后兼容 2003 2005 2008 2010 快捷版标准版专业版团队版(没啥区别,微软定价策略)
第一个程序:
Console.WriteLine("Hello");//打印输出
string s= Console.ReadLine();//用户输入文字的时候是暂停的输入完毕点回车,把用户输入的东西做为返回值,声明一个string类型的变量(容器)s,用s来放writeline函数返回的值。
Console.WriteLine(s);
Console.ReadKey();//按一个按键继续执行
int i1 = 10;
int i2 = 20;
Console.WriteLine(i1+"+"+i2+"="+i1+i2);//输出1020
Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);//输出10+20=30
//输入的小例子
Console.WriteLine("请输入男孩的名字");
string boy = Console.ReadLine();
Console.WriteLine("请输入女孩的名字");
string girl = Console.ReadLine();
Console.WriteLine("{0}爱{1}",boy,girl);
Console.ReadKey();//按一个按键继续执行
字符:
String 字符串 int 整型 char ‘a’“a”string bool 布尔(或真或假)
转义:
String s = “”ab””//不通过“开始”结束
String s = “\”ab\“” 输出”ab“使用转义符因为编译器遇到”开始字符串在遇到“结束字符串,如果遇到前面有\就不把他当成有字符串开始结束意义的符号了。
String s = “a\nb” //n:newline 换行转义符
输出\ string s = “a\\b” 输出 a\b
String s= @”\\\\” //@表示字符串中的\不当成转义符 只针对转义符\起作用对““不起作用
输入a\b 输出也是a\b 只关心代码输入无关程序
string str = Console.ReadLine();
Console.WriteLine(str);
Console.ReadKey();
简单的类型转换
Convert.ToString32();
简单的加法程序
Console.WriteLine("请输入第一个数值");
string s1 = Console.ReadLine();
int i1 = Convert.ToInt32(s1);
Console.WriteLine("请输入第二个数值");
string s2 = Console.ReadLine();
int i2 = Convert.ToInt32(s2);
Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);
Console.ReadKey();
精简版 Console.WriteLine("请输入第一个数值");
int i1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数值");
int i2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}+{1}={2}", i1, i2, i1 + i2);
Console.ReadKey();
变量命名
第一个字符必须是字母或者下划线_其后的字符可以是任意个数字,字符下划线,不可以使用关键字VS蓝色的就是关键字。
string Name = Console.ReadLine();
Console.WriteLine(Name);
Person p1 = newPerson();
p1.Age = 20;
p1.speak();
Console.ReadKey();
类:
classPerson
{
publicint Age
{
get;set;
}
publicvoid speak()
{
Console.WriteLine("Hello");
}
}
运算符、表达式
+ 可以用作字符串连接,其他不可以
练习题1: Console.WriteLine("请输入第一个数值");
string s1 = Console.ReadLine();
int i1 = Convert.ToInt32(s1);
Console.WriteLine("请输入第二个数值");
string s2 = Console.ReadLine();
int i2 = Convert.ToInt32(s2);
Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);
Console.ReadKey();
赋值
int i = 30;
console.writeLine("{0}",i==1);//结果是flase
console.writeLine("{0}",i=1);//结果1 C#中赋值表达式页有值,它的值表示为赋值后变量的值
练习1:提示用户输入密码,如果密码是“88888”则提示正确,否则提示错误
Console.WriteLine("请输入密码");
string s1 = Console.ReadLine();
if (s1 == "888888")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
练习2:提示用户输入面,如果密码是“888888”则提示正确,否则要求再输入一次,如果密码是“888888”则提示正确,否则提示错误。
Console.WriteLine("请输入密码");
string s1 = Console.ReadLine();
if (s1 == "888888")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误,请重新输入");
string s2 = Console.ReadLine();
if (s2 == "888888")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
Console.ReadKey();
}
练习3:提示用户输入用户名,然后再提示输入数码,如果用户名是“admin”并且密码是"888888",则提示正确,否则提示错误,如果用户名不是admin还提示用户名不存在。
Console.WriteLine("请输入用户名:");
string s1 = Console.ReadLine();
Console.WriteLine("请输入密码:");
string s2 = Console.ReadLine();
if (s1 != "admin")
{
Console.WriteLine("用户名不存在");
}
else if (s1 == "admin" && s2 == "888888")
{
Console.WriteLine("正确");
}
else
{
Console.WriteLine("错误");
}
Console.ReadKey();
练习4:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes、no),如果输入的是yes则提示用户可以差可能啊,否则提示不可以查看。
Console.WriteLine("请输入年龄");
string s1 = Console.ReadLine();
int i1 = Convert.ToInt32(s1);
if (i1 >= 18)
{
Console.WriteLine("可以查看");
}
else if (i1 < 10)
{
Console.WriteLine("不允许查看");
}
else if (i1 >= 10)
{
Console.WriteLine("是否继续查看:yes、no");
string s2 = Console.ReadLine();
if (s2 == "yes")
{
Console.WriteLine("可以查看");
}
else
{
Console.WriteLine("不允许查看");
}
}
Console.ReadKey();
练习5:依次提示用户输入两个整数(假设i1、i2)如果i1、i2都是正数,则将i1的值递增一个数,然后打印i1*i2的值;如果i1、i2中任一个为0,则提示数据有错误;否则计算i1*i2的绝对值。
Console.WriteLine("请输入第一个正数");
string s1 = Console.ReadLine();
int i1 = Convert.ToInt32(s1);
Console.WriteLine("请输入第二个正数");
string s2 = Console.ReadLine();
int i2 = Convert.ToInt32(s2);
if (i1 >0 && i2 > 0)
{
i1 = i1+1;
Console.WriteLine("{0}",i1+i2);
}
else if (i1 <0 && i2 <=0)
{
i1 = i1 - 10;
Console.WriteLine("{0}*{1}={2}",i1,i2,i1*i2);
}
else if (i1 == 0 || i2 == 0)
{
Console.WriteLine("数据有误!");
}
else
{
int i3 = i1 * i2;
if (i3 < 0)
{
i3 = -i3;
}
Console.WriteLine("{0}*{1}的绝对值是:{2}",i1,i2,i3);
}
switch case学习
int i = 20;
switch (i)
{
case 2://if(i==2)
Console.WriteLine("你真2");
break;
case 3://if(i=3||i=4)
case 4://if(i=3||i=4)
Console.WriteLine("你才二");
break;
default:
Console.WriteLine("你输入的{0}没有意义",i);
break;
}
总结:类似于if...else...esle if...else 但是是离散值的判断
switch 一般都可以用if重新写,但是if不一定能用switch重写
不要忘了break C#中的break不写是不行的。
while循环
while(i<100)
{
//打印i;
i++;
}
//只要while后小括号中的表达式为true,就不断执行大括号中的代码。
do
{
//打印i
i++;
}
while(i<100)//先做,至少被执行一次,直至while表达式为false
练习1:用while计算1到100之间整数的和;
int i = 0, s = 0;
while(i<=100)
{
s=s+i;
i++;
}
Console.WriteLine(s);
Console.ReadKey();
练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入
Console.WriteLine("请输入用户名:");
string s1 = Console.ReadLine();
Console.WriteLine("请输入密码:");
string s2 = Console.ReadLine();
while (s1 != "admin" || s2 != "888888")//反向思维,只要有一项不满足就行。
{
Console.WriteLine("请输入用户名:");
s1 = Console.ReadLine();
Console.WriteLine("请输入密码:");
s2 = Console.ReadLine();
}
Console.ReadKey();
第二种方法:
while (true)
{
Console.WriteLine("请输入用户名");
string username = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
if (username == "admin" && password == "888888")
{
Console.WriteLine("登录成功");
break; //终止循环
}
}
Console.ReadKey();
练习3:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。,
while(true)
{
Console.WriteLine("请输入数字");
string s1 = Console.ReadLine();
if(s1=="q")
{
return;
}
else
{
int a1 = Convert.ToInt32(s1);
a1 = a1 * 2;
Console.WriteLine(a1);
}
练习4:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值,设一个变量Int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。
int max = 0;
while (true)
{
Console.WriteLine("请输入一个数值");
string s = Console.ReadLine();
if (s == "end")
{
Console.WriteLine(max);
Console.ReadKey();
return;
}
int a = Convert.ToInt32(s);
if (a > max)
{
max = a;
}
}
第一题:聊天机器人(第一版本)
//聊天机器人
Console.WriteLine("你好,我是聊天机器人!");
int fullLevel = 5;//设置初始值,初始值必须在while外设置
while (true)
{
string str = Console.ReadLine();
if (fullLevel <= 0)
{
Console.WriteLine("不聊了,饿死了!!喂我点吃的吧");
string food1 = Console.ReadLine();
int food = Convert.ToInt32(food1);
if (food <= 0)
{
Console.WriteLine("你耍我呢!!!");
Console.ReadKey();
return;
}
if (food > 10)
{
Console.WriteLine("撑死我了!!!!");
Console.ReadKey();
return;
}
fullLevel = fullLevel + food;
continue;
}
if (str == "今天天气怎么样?")
{
Console.WriteLine("天气很好啊");
}
else if (str == "你有女朋友吗?")
{
Console.WriteLine("我没有女朋友,因为我才18岁!");
}
else if (str == "你快毕业了吗?")
{
Console.WriteLine("我才十八岁,还在上学呢!");
}
else if (str == "88")
{
Console.WriteLine("886");
Console.ReadKey();
return;
}
else
{
Console.WriteLine("你从火星来的吗?能说普通话吗?");
}
fullLevel--;
}
总结:
第一步:机器人问好,我来提问
string str = Console.ReadLine();
第二步:当 str=="?"打印输出.....
输入与输出都不相等时......打印输出什么
return; 前加console.ReadKey();
第三步:机器人会饿需要喂食
设定局部变量int fulllevel=5;初始值为5
如果fullLevel<=0提醒"饿了~"
记录用户输入的字符串并转化成int型
判断用户输入food的数值
喂食=0时 提示”逗我玩呢“return;退出程序
喂食>10时 提示“撑死我了”return;退出程序
如果都不是 fullLevel=fullLevel+food;continue;
继续聊天(fullLevel--;)
For循环
int sum = 0;
for(int i=200;i<301;i++)
{
sum = sum + i;
}
Console.WriteLine("{0}",sum);
Console.ReadLine();
Cast:类型转换
只有内存存储上存在交集的类型之间才能进行Cast,否则则不可以。
比如不可以,int i;string s =(string)i;这种情况必须使用Convert类提供方法来解决。
例如:string s ="123";
int i = (int)s;//错误,不能在Int、string之间进行强制类型转换,只能用convert
正确做法:int i = convert.toint32(s);
console.ReadKey();
Convert类型转化
Convert不再是内存级别的转化,而是考虑数据意义转换,可以把姓名convert成人,convert是一个加工、改造的过程。Convert.ToInt32(?);
枚举://限定变量的取值范围,必须确定几种选择范围内之后才可以声明枚举
确定数量、确定值的几个取值:东西南北、男女、上中下。
和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方面。
enum Gender {Male,Female,Unkown };//声明枚举
enum QQStatus {online,offline,hiden} //语法
Gender g = Gender.Female;
QQStatus status = QQStatus.online;
示例: namespace 枚举的学习
{
enum Gender {Male,Female,Unkown };//声明枚举
enum QQStatus {online,offline,hiden}
enum Direction {east,south,west,north }
class Program
{
static void Main(string[] args)
{
Gender g = Gender.Female;//声明枚举就限定了值,一定就是这三个其中的一个值了
QQStatus status = QQStatus.online;
Direction str = Direction.east;
}
}
}
return;与break;的区别
return;后,直接退出程序。break;只是终止本次循环.
后续...
- C# 基础学习第一天
- 学习C#第一天
- 学习C#第一天
- 第一天学习C#
- c#学习第一天
- C#学习第一天
- C# 学习第一天
- 学习基础 第一天
- c#学习开始第一天
- 记录学习第一天-c#
- 学习c#的第一天
- JAVA基础学习第一天
- 第一天,Java基础学习
- Oracle学习-基础-第一天
- java学习第一天:基础
- Java基础学习第一天
- 第一天 java基础学习
- OC基础学习第一天
- 程序人生--世界观
- xcode 报错xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer/") does not
- boost graph --- 有向图中两点间所有路径(可处理有环情况)
- POJ 1942-Paths on a Grid(组合数学)
- C#解析 json
- C# 基础学习第一天
- 一起学android之自定义控件显示点赞用户并通过用户名称进入该用户主页的功能 (40)
- debian安装 Mongodb
- Chapter12. Foundation Classes and selector in Objective-C
- 天声人語 20150529
- [C语言] 对于scanf()函数使用%d格式说明符无法读取字符的个人理解
- 日经春秋 20150529
- ABAP性能优化之使用 “for all entries”
- JSON详解