复习break、continue、while、do-while的运用
一、复习:
循环。反复执行某段语句一种语法形式。
1.基本语法: for( 初始条件 ; 循环条件 ; 状态的改变 ) { 循环体 } 循环的四要素。 循环的执行过程。初始条件--循环条件--循环体--状态改变--循环条件--。。。。。 案例:1.打印10您好。2.显示1-100的数(所有的数,奇数,偶数)。3.显示ASCII码。
2.循环的嵌套。 for( ...;... ; ...) { for(...;...;...) { } } 案例:打印各种图形——外层的循环,打印行。内层循环,打印列。
3.应用(迭代,穷举) 迭代:按照某种规律,通循环逐步推导出最终结果来。 // 结果不正确往往是方法有问题,方法不正确往往是思想有问题。 最重要的——把迭代的规律找出来,并且用表达式表示出来。
案例: 1.100以内所有数的和。 2.阶乘 3.年龄推导。 4.折纸。棋盘上放粮食。 5.猴子吃桃子。 6.落球 7.兔子生兔子。 穷举:把所有可能的情况都走上一遍,根据要求找出满足条件的结来。
最重要的——能够看出是否可以用穷举来解决;如何把穷举的语法写出来。
案例:
1.100以内与7有关的数。
2.硬币组合问题。1,2,5 组合出1毛5来。
3.买东西。牙刷,香皂,洗发水。
4.百鸡百钱,百马百石。 5.侦察兵
6.等式填运算符
二、新课:
1.break与continue. 这两个关键字一般放在循环的花括号里面使用。
break——结束整个循环。 continue——结束本次循环,进入下次循环。
break的案例:
int i = 1; for(; ;)
{ if(i>100) { break; } Console.Write(i+"\t"); i++; }
continue的案例:
for (int i = 1; i <= 100; i++)
{ if(i%2 == 0) { continue; } Console.Write(i + "\t"); }
2.while循环 //初始条件 while(循环条件) { //循环体 //状态的改为 }
案例: int i = 1; int count=0; //记录与7有关的数字的个数
while(i<=100)
{ if(i%7==0 || i%10==7||i/10==7)
{ Console.Write(i+"\t"); count++; //1 } i++; }
3 Console.Write("共有"+count+"个与7相关的数");
3.do...while(循环条件)简单了解。 即使初始条件不满足循环条件,循环还会执行一次。 至少执行一次。
数组:解决同一类大量数据在内存存储和运算的功能。
分类:一维数组、二维数组、多维数组。
特点:连续,同一类数据。
一、一维数组:豆角。 定义:指定类型,指定长度,指定名称。
int[] a = new int[5]; //5是长度。从1开始算。默认5个元素初始值都是0.
int[] a = new int[5] { 90, 95, 89, 76, 99 };
int[] a = new int[5] { 90, 95, 89 }; //语法有错,后面初始化的值必须是5个。
int[] a = new int[] { 90, 95, 89, 76, 99}; //计算机会根据后面的赋值,动态计算数组的长度。
赋值: 数组名[下标数值] = 值; int[] a = new int[5]; a[0] = 10; a[1] = 20; a[2] = 30; a[3] = 40; a[4] = 50;
取值: 数组名[下标数值]; //下标数值从0开始。 Console.WriteLine(a[3]+a[0]);
数组的好处:
1.对于大量数据来说,保存的时候,定义一个数组即可解决。
2.用循环来控制数组的下标,可以对数组进行批量操作。
例如:
int[ ] a = new int[5]; //数组的批量赋值
for (int i = 0; i < 5;i++ ) { a[i] = (i + 1) * 10; } //数组的批量取值。
for (int j = 0; j < 5;j++ )
{ Console.WriteLine(a[j]); //0下标。 }
案例一:做一个教练为6个球员打分的程序。
//定义一个保存球员成绩的数组 int[ ] a = new int[6];
//输入 for (int i = 0; i < a.Length; i++) { Console.Write("请输入第"+(i+1)+"个球员的成绩:");
a[i] = Convert.ToInt32(Console.ReadLine()); }
//输出 for(int j=0;j<a.Length;j++) { Console.WriteLine("第"+(j+1)+"位球员的分数是"+a[j]+"分。"); }
案例二:在案例一的基础上,显示球员总分和平均分。
案例三:在案例二的基础上,显示最高分和最低分,以及相应球员的代号。
案例四:青歌赛中有10个评委给一个选手打分,每打分后,要去掉一个最高分和一个最低分,计算该选手的平均得分。
案例五:做一个36选7的彩票生成器。
int[] a = new int[7];
Random rand = new Random(); for (int i = 0; i < 7; i++) //7--代表要生成7个不同的数 { //生成一个随机数。
int n = rand.Next(36); n++;
//查重 bool chong = false;
for(int j=0;j<a.Length;j++) { if(n == a[j]) { chong = true; break; } } //才能确定n合不合理
if(chong == false) { a[i] = n; } else { i--; }//if }//for
//显示彩票号码 for(int k = 0;k<a.Length;k++) { Console.Write(a[k] + "\t"); }
作业一,20个手机号滚动显示,随机抽取一个中奖号码。
string[] cellPhone = new string[ ]
{ "13012345678", "13109876543", "13287654678", "13309876789", "13509878902", "13698374651", "13757893421", "13876561234", "13909876543", "15034567438", "15111234795", "15894574839", "18210394857", "18302938475" };
Random rand = new Random(); for(int i=0;i<50;i++)
{ //变慢一些。 System.Threading.Thread.Sleep(100);
//随机生成数组的下标。 int sub = rand.Next(cellPhone.Length);
//根据下标取数组的元素值。 string s = cellPhone[sub];
//显示 Console.Clear(); Console.WriteLine(s); }
最新文章
- Android 绘制view的小知识点
- php、前端开发(网站建设)环境搭建
- 安卓动态调试七种武器之离别钩 – Hooking(下)
- ffmbc——广播电视以及专业用途量身定制的FFmpeg
- Ajax --- 数据请求
- ";A transport-level error has occurred when sending the request to the server";的解决办法
- libyuv 编译 for android
- C#获取ftp文件最后修改时间
- iOS开发下架在AppStore中销售的app
- GoF 设计模式:浅浅印象
- protobuf和thrift对比
- angular directive自定义指令
- BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆
- SQL Server含逗号分隔的数据匹配维表
- swift学习 引入三方遇到的问题
- C++二维数组、指针、对象数组、对象指针
- jquery 获取表单的用户输入值的方法
- nodejs加WebSocket,聊天工具
- BZOJ3771: Triple【生成函数】
- UVA-839-二叉树-一个有意思的题目
热门文章
- Git 报错:Updates were rejected because the tip of your current branch is behind
- Java 语句while、do while、for循环、嵌套、for与while的区别、break continue(3)
- Linux文件目录常用命令
- JS 日期格式化为 2020-11-01 22:33:44 格式
- 1.pycharm使用
- Innodb-内存架构与特性
- windows服务器搭建SVN[多项目设置方法]
- 题解 P6005 【[USACO20JAN]Time is Mooney G】
- Tensorflow学习教程------lenet多标签分类
- python学习Day08--文件操作