-------------------------------------------------------
关键字
双重for
数组
一维数组
二维数组
方法
OOP4-5
string
内存
集合IO
--------------------------------------------------------
1)swich..case
2)break:中止循环
3)break是如何中止的?
循环执行过程中,遇到break语句时,中止循环
循环下面的其它语句。
4)break会和if语句配合使用;
5)while,dowhile,for中都可以
intx=2;
do
{
x++;//x=x+1;//34
//如果x是偶数,中止循环
if(x%2==0)
//遇到break会执行循环结束大括号下面的语句
break;
}
Console.WriteLine(x);//3
}while(x>2&&x<=4);
Console.WriteLine(x);
答案:
3
4
代码详见:DAY05_02_Break_Continue---BreakDemo1.cs
2)观察下列代码的功能是什么?
intsum=0;//求和
for(inti=0;i<=100;i++)
if(sum>2000)
Console.WriteLine(i);
分析得出,i=63时,sum+63=2016,然后往下遇到for的结束
会返回到i++,i变成了64,然后判断满足<=100,执行循环体
当再次判断sum与2000关系时,2016>2000,所以执行if代码
打印i的值为64,遇到break跳出循环。
sum+=i;//累加
Console.WriteLine("for循环执行结束");
功能:求0到100以内所有数字的和,当和大于2000
时,提前结束循环了(提前中止循环)
代码详见:DAY05_02_Break_Continue---LianXi2.cs
2)continue中止循环
coninue用于结束本次循环,继续执行下一次循环。
含义是:
遇到continue时,continue下面的语句不再执行,
会执行下一次循环。
1)相同点:用于中止循环
2)不同点:
循环中一遇到break,整个循环都中止了
循环中遇到continue,只是表示一轮的结束,
它还会继续下一次循环,只是continue下面的其它
语句不再执行。
3)使用场景:
1)break一般是和总和或总乘积变量做比较
2)contiue更多的是对一组数据进行判断时
这组数组中某一个或几个不满足条件时,做
其它处理。然后继续遍历剩下的其它数据。
比如:打印50以内所有的偶数.循环体中可
使用if语句进行判断,如果是奇数,直接cotinue
进行下一个数字比较。
练习:打印50以内所有的偶数.
要求:使用continue关键字实现。
代码详见:DAY05_02_Break_Continue---LianXi1.cs
打印10以内的所有数字,但是3和8两个数字不会打印。
使用for循环完成或使用while循环完成。
在一个循环中包含另外一个循环。
外层循环,内层循环
//外层循环,由i构成
for(inti=0;)
//内层循环,由j构成
for(intj=0;)
任意层,常用的嵌套层,2层
三种可以任意嵌套
1.数组排序
2.打印规律性图形
for(inti=0;i<;i++)
for(intj=0;j<;j++)
Console.Write("*");
Console.WriteLine();
*******
*
**
***
****
*****
******
*********
********
for()
方法的执行,分析while循环中continue跳到哪里?
1)**********
for(inti=0;i<10;i++)
Console.Write("*");//在一行上打印
Console.WriteLine();//换行
2)
写法:
外层for循环,控制行数(一共的行数)
for(inti=0;i<5;i++)
//内层for循环,控制列数(每一行打印的*数量)
for(intj=0;j<7;j++)
---------------------------------------------------------
说明:总结的打印多种图形的类在:PrintShape.cs类中
补充:
在嵌套的循环中,也只可以使用break和continue,
还是跳出循环,但跳出的是所在的循环,并不能直接
跳出最外层的循环.
例如:
intsum=0;
for(inti=1;i<=5;i++)
for(intj=1;j<10;j++)
if(j%2==0)
Console.Write(j+"\t");
sum+=i;
Console.WriteLine(sum);
补充2:
死循环
...事情时",要使用while循环完成;
也可以理解为,不能明确知道循环次数时,只能使用while
但是while完成的功能,for并不一定能完成。
for对一组规律数据操作:求和,求阶乘,求指定范围
内的数据
如:求1+2+3+4+...100的和
如:求100以内所有偶数
如:求1000以内所有水仙花数(三位各位的三次方相加等于数本身)
1000以内所有的水仙花数:153370371407
四叶玫瑰
五角星数
...
如:求100以内所有质数(素数)
............
数组是内存中一块区域,
这块区域可以存储多个同一类型的数据
这些数据都拥有同样的名字
通过每个数据的下标标识来区分(0,1,2,3,4,....)
这块区域是连续。
基本语法:[]
数据类型[]数组名;
如:数据类型可以是13种值类型,自定义定义的类型
如:定义一个int类型的数组,年龄数据ages
int[]ages;
如:float类型,存储多个小球移动速度moveSpeeds
float[]moveSpeeds;
int[]ages;//定义
ages={21,23,25,20};
静态:int[]ages={21,23,25,20};
1){}
2)只能一条语句
3)何时使用静态初始化?
明确已知数组中存储元素的个数,且明确
已知每个元素的值
动态:new
基本语法:
数组名=new数组类型[60];
或:数据类型[]数组名=new数组类型[60]
如:使用动态初始化来构建一个数组,nums
存储100个float类型的数据;
float[]nums;
nums=newfloat[20];
或:float[]nums=newfloat[20];
说明:
1)new用于动态初始化
2)何时使用动态初始化?
已知存储了多个数组,但是不明确知道每个数据
的值是多少?
3)数组动态初始化,每个元素都是有默认值的:
整数,0
小数,0.0
布尔,false
.....
数组名[下标标识]
注:下标标识是一个整数,从0开始,1,2,3,4,5,
如:int[]ages={21,23,25};
第一个元素:ages[0]
第二个元素:ages[1]
Console.WritLine(ages[1]);
1)定义一个表示角色年龄的数组,类型int,roleAges,
存储的角色的年龄值:45,67,91,89,10
使用静态初始化方式来完成。
2)定义一个表示角色身高的数组,数组的类型float
数组的名字roleHeights,存储5个角色的身高,
要求:使用动态初始化完成。
3)roleHeights中的每个元素及元素的值
int[]numbers=newint[3];
1)数组名为:numbers
2)数组长度为:3
3)数组的类型为:int
4)数组中有几个元素:3个
5)数组中的第二个元素如何表示:numbers[1]
6)numbers[1]这个元素来说,这个元素的下标是多少?1
解释:[]中写的具体数字就是下标值,下标值从0开始
第一个元素的下标为0,最后一个元素的下标为:
数组长度-1,如果长度为3,减-1,为2
7)如果要打印数组中最后一个元素的值和第一个元素中存储
的具体数字,如何表示?
Console.WriteLine(numbers[0]);//0
Console.WriteLine(numbers[2]);//0
ages[0]
ages[1]
如果想查看结果,可以将其放到打印语句中
但是这种方法重载代码太多,太繁琐
for(inti=0;i<数组名.Length;i++)
Console.WriteLine(ages[i])
不如for循环结构简单,请尝试使用while或
dowhile来完成。
foreach(数组类型变量名in数组名)
Console.WriteLine(变量名);
1.猜数字游戏
首先会由程序自动生成指定区间范围内任意一个随机数,
[0,10)之间的某个数字,然后由控制台提示用户通过
控制台输入0-10范围内用户自己猜测的数字:
“请输入您猜测的数字(范围在0-10之间):”,
然后由程序自动根据用户猜测的数字判断猜测结果:
如果输入的数字大于系统数字,控制台则提示:“您猜测的数字偏小了...”;
如果输入的数字小于系统数字,控制台则提示:“您猜测的数字偏大了”;
否则,输入的数字和系统输入应该正好相等,控制台提示“太棒了,恭喜您猜对了...”
需要注意的是,如果第一次没有猜对了,就应该在输出猜测结果后,
让用户继续进行下一次输入数字猜测数字的操作,
并且对猜测结果进行继续判断;
如果第二次还是没有猜,就应该继续让用户输入数据,
然后再由系统判断,如此一来,会发现程序现在有许多需要反复执行的代码
自然,就需要使用循环语句来完成。
同样,用户在猜测过程中,如果想中止循环,也可以.当用户输入-1时,表示终止循环.
另外,打印最后结果时,还要打印出猜测的次数.
2.(必做题)
键盘输入5个学生的年龄,然后求年龄总和,
平均年龄。
要求,动态初始化数组表示学生年龄的数组。
3.网站验证码(选做题)
现有一组字符,要求从这组字符中随机取出4位作为网站验证码。
注:这一组字符串是由26个大写字母,26个小写字母10个数字构成的char类型的数组,数组名为codes。
要求:从codes数组中随机取出4位.作为网站验证码,要求这4位验证码放在数组中
考查:char类型数组的定义及初始化、随机数的操作.
产生一个随机数,随机数范围,intindex=newRandom().Next(codes.Length)