C#基础总结(三)-创新互联
一、if结构的基本语法:
创新互联是专业的清流网站建设公司,清流接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行清流网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!if(条件)
语句1;
执行过程:首先判断条件的结果,如果条件为ture,则这行语句1,如果条件为false,则跳过语句1。执行后面的语句。
注意:
1)if后面的括号中的条件,要能计算成一个bool类型的值。
2)默认情况下,if语句只能带1句话,即和if语句有关系的语句只有语句1.
if带多句话可以写成:
if(条件)
{
语句1;
语句2;
。。。。。。。。。
}
我们在写程序的时,哪怕if语句只带一句话,也要写在大括号中。
二、if-else结构:
语法:
if(条件)
{
语句1;
}
else
{
语句块2;
}
执行过程:
如果条件为ture,则执行if带的语句块1,并且跳过else带的语句2
如果条件为false,则跳过if带的语句块1,执行else带的语句块2
上面两个语句块,根据条件结束为ture或False,总要执行一个。
三、if-else if
在if-else if语句中,只有当上一个条件不成立时,才会进入下一个if语句并进行if语句后面的条件判断。
一旦有一个if后面的条件为ture,则执行此if所带的语句(块),语句(块)执行完成后,程序跳出if-else if结构。
如果所有的if条件都不成立,则执行最后的else所带的语句,如果最后没有else语句,则什么都不执行。
练习一
练习二
练习三
四、switch-case语法:
switch(表达式/变量)
{
case 值1:语句块1;
break;
case 值2:语句块2;
break;
default: 语句块3;
break;
}
执行过程:
首先计算表达式,然后根据计算的结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,
直到break语句跳出 switch-case,如果所有的case值都不匹配,那么default则执行 default后面的语句,直到 break结束。
如果没有default,则跳出switch-case,什么都不执行。
switch与if的区别
相同点:都可以实现多分枝结构
不同点:
·switch:一般只能用于等值比较
·if-else if 可以处理范围
五,while循环的语法
while(条件) //条件为循环条件
{
循环体(要循环执行的N条程序)
}
执行过程
1 先判断循环条件,如果条件为true则转向2,如果条件为false则转向3
2 执行循环体,循环体执行完后转向1
3 跳出循环体,循环结束
在循环体中,一定要有那么一句话,改变循环条件中的某个变量的值,使循环条件终有那么一天为 false.
While循环特点:先判断,再执行
class Program { static void Main(string[] args) { //习题一 int i = 0; while (i < 100) { Console.WriteLine("{0}.\t欢迎您来到传智播客学习!\t",i+1); i++; } Console.ReadKey(); } }
class Program { static void Main(string[] args) { //习题二 Console.WriteLine("请输入你们班级有多少人:"); int count = Convert.ToInt32(Console.ReadLine()); int score = 0; int sum = 0; int i=0; while (i< count) { Console.WriteLine("请输入第{0}个学生的成绩",i+1); score = Convert.ToInt32(Console.ReadLine()); sum += score; i++; } Console.WriteLine("本班级有{0}人,班级总成绩为{1},平均成绩为{2}",count, sum,sum/count); Console.ReadKey(); } }
class Program { static void Main(string[] args) { //习题三 Console.WriteLine("这道题你会做了吗?(会Y/不会N)"); string select = Console.ReadLine(); int i = 0; while (select=="N"&&i<10) { Console.WriteLine("这道题你会做了吗?(会Y/不会N)"); select = Console.ReadLine(); i++; } Console.WriteLine("可以放学!"); Console.ReadKey(); } }
class Program { static void Main(string[] args) { //习题四 double count = 8000; int year = 2006; while (count < 200000) { count += count * 0.25; year++; } Console.WriteLine("到{0}年,培训学员将达到20万",year); Console.ReadKey(); } }
六、do-while
语法:
do
{
循环体;
}while(条件);
执行过程:
1. 执行循环体,执行完循环体转向2
2. 判断条件是否成立,如果条件为true,则转向1,如果条件为false,则转向3.
3. 跳出循环,循环结束。
假如循环条件一开始就不成立,对于while循环,一次都不会执行。对于do-while循环体会执行一次。
所以,do-while的循环体一般至少会被执行一次。
区别:
while先判断,后执行。
do-while先执行,后判断
//练习一 int i = 1; int sum = 0; do { sum+=i; i++; }while(i<=100); Console.WriteLine("1到100之间的整数和为{0}",sum); Console.ReadKey();
//练习二 string username; string password; do { Console.WriteLine("请输入用户名和密码:"); username = Console.ReadLine(); password = Console.ReadLine(); if (username != "admin" || password != "888888") { Console.WriteLine("你输入的用户名或密码有误!请重新输入!"); } } while (username != "admin" || password != "888888"); Console.WriteLine("登陆成功!"); Console.ReadKey();
//习题三 string name; do { Console.WriteLine("请用户输入学生的姓名:"); name = Console.ReadLine(); } while (name != "q"); Console.WriteLine("程序结束!") Console.ReadKey();
//习题四 int number; bool flag = true; do { Console.WriteLine("请用户输入一个数字:"); try { number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}的二倍是{1}", number, number * 2); flag = true; } catch { flag = false; } } while (flag);
//第五题 string input=""; int number; int max=0; bool flag = true; do { try { Console.WriteLine("请输入一个数字:(或end结束)"); input = Console.ReadLine(); number = Convert.ToInt32(input); if (number > max) { max = number; } } catch { if (input != "end") { Console.WriteLine("你输入有误!程序结束!"); input = "end"; flag = false; } } }while(input!="end"); if(flag) { Console.WriteLine("你输入的大值是{0}", max); } Console.ReadKey();
class Program { static void Main(string[] args) { //习题六 int i=0; string answer; do { Console.WriteLine("张三表演第{0}次舞蹈",i+1); Console.WriteLine("老师你满意吗?(Y/N)"); answer=Console.ReadLine(); i++; }while(answer=="N"); Console.WriteLine("不错!可以回家了!"); Console.ReadKey(); } }
七、for 循环语法:
for(表达式1;表达式2;表达式3)
{
循环体;
}
for循环一般用于已知循环次数的循环
一般情况下
表达式1 用于定义循环变量和对循环变量赋初值。
表达式2 就是循环条件
表达式3 用于改变循环标量的值
执行过程:
1) 计算表达式1,转向第步
2) 计算表达式2(表达式2就是循环条件),如果表达式2的值为true,转向第3步,如果表达式2的值为false,转向第5步
3) 执行循环体,转向第4步
4) 执行表达式3,转向第2步
5) 循环结束
//问题一 int sum = 0; for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { sum = sum + i; } } Console.WriteLine("1-100的偶数和为{0}", sum); Console.ReadKey();
//问题二 for (int i = 100; i <= 999; i++) { int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if (i == ge * ge * ge + shi * shi * shi + bai * bai * bai) { Console.WriteLine(i); } Console.ReadKey(); }
//问题三 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { Console.Write(" {0}*{1}={2:00} ", i, j, i * j); } Console.WriteLine(); }
//问题三 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { Console.Write(" {0}*{1}={2:00} ", i, j, i * j); } Console.WriteLine(); } Console.ReadKey();
break;
1) 可以用于switch-case判断中,用于跳出switch
2) 用在循环中,用于立即跳出(终止)循环.
注意:用于循环中时;跳出的是break所在的循环
class Program { static void Main(string[] args) { int age = 0; int sum = 0; bool flag = false; for (int i = 0; i < 5; i++) { Console.WriteLine("请输入第{0}个人的年龄",i+1); try { age = Convert.ToInt32(Console.ReadLine()); if (age < 0 || age >= 200) { Console.WriteLine("你输入的年龄不合法!程序终止!"); break; } sum += age; flag = true; } catch { Console.WriteLine("你输入的数据有误!程序终止!"); break; flag = false; } } while (flag) { Console.WriteLine("你输入的5个人的平均年龄为{0}", sum / 5); } } }
class Program { static void Main(string[] args) { string username ; string password ; while (true) { Console.WriteLine("请输入的用户名和密码:"); username = Console.ReadLine(); password = Console.ReadLine(); if(username=="admin"&&password=="888888") { Console.WriteLine("登陆成功!"); break; } Console.WriteLine("你输入的用户名或密码有误!请重新输入!"); } } }
class Program { static void Main(string[] args) { int i = 0; int sum = 0; while (i <=99) { i++; if (i % 7 == 0) { continue; } sum += i; } Console.WriteLine(sum); } }
continue;
用于循环中,程序一旦执行到continue语句,立即结束本次循环(就是不在执行循环体中continue下面的语句了),
直接进行下一次循环(对于do-while/while直接进行下一次循环条件的判断,如果条件成立,则再次进入循环,
对于for循环,先执行表达式3,再判断循环条件是否成立),
class Program { static void Main(string[] args) { int i = 0; int sum = 0; while (i <=99) { i++; if (i % 7 == 0) { continue; } sum += i; } Console.WriteLine(sum); } }
枚举/常量/结构
常量:
语法:
const 类型 变量名 = 常量值
在定义时赋值,在其他地方不允许赋值,
枚举:
让我们定义一种类型并且在定义这种类型时我们要指定这个类型的所有值;
语法:
enum 自己起的类型名称 {类型的值1,值2,值3,…};
枚举的定义,一般和类定义在同一个级别,这样,在同一个命名空间下的所有类都可以使用这个枚举。
枚举的作用:
1) 限制用户不能随意赋值,只能在定义枚举时列举的值中选择.
2)不需要死记每一个值是什么,只需要选择相应的值
注意:定义枚举时,值不能为int类型
枚举类型的变量都可以强制转换成一个int类型
(int)变量名
把一个字符串转换成枚举类型:
自己定义的枚举类型=自枚
变量 = (自枚)(Enum.Parse(typeof(自枚),”待转换的字符串”));
namespace _01 { enum Gender { 男,女} class Program { static void Main(string[] args) { Gender sex; sex = Gender.男; Console.WriteLine("请输入你的性别:"); try { string s = Console.ReadLine(); sex=(Gender)(Enum.Parse(typeof(Gender),s)); Console.WriteLine("你的性别为"+sex); } catch { Console.WriteLine("你输入的性别有误!"); } } } }
为什么要用结构:
1) 比如我们上课讲的为了存储一个人的信息,要声明一组变量,当我们要存储n个人的信息时,就要声明n组变量,太麻烦了。
2) 存储一个人信息的这几个变量之间没有关系,容易混淆。
语法:
访问修饰符 struct 结构名
{
定义结构成员
}
定义好一个机构后,就可以直接声明相应的变量.
声明好变量后,通过变量名.成员名来访问结构的成员
namespace _02结构 { public enum Gender { 男, 女 } public struct Person //定义一个叫Penson的结构 { public string name;//结构的成员 public Gender sex;//结构的成员 public int age;//结构的成员 } class Program { static void Main(string[] args) { Person onePerson; onePerson.name="张三"; onePerson.age = 20; onePerson.sex = Gender.男; Console.WriteLine("我叫{0},今年{1}岁,我是{2}性", onePerson.name, onePerson.age, onePerson.sex); Person secPerson; secPerson.name = "李四"; secPerson.age = 21; secPerson.sex = Gender.男; Console.WriteLine("我叫{0},今年{1}岁,我是{2}性", secPerson.name, secPerson.age, secPerson.sex); Console.ReadKey(); } } }
可访问性不一致:
声明的枚举的访问修饰符的级别要比类Person的访问修饰符的级别低。另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:C#基础总结(三)-创新互联
分享链接:http://hbruida.cn/article/cdhsgg.html