C#学习笔记03--循环和一维数组
一.循环(重点)
什么时候用循环?
想让一段代码执行多次, 这段代码可能不一样但是一定有一个规律.
1.while 循环
格式:
while(循环条件)
{
循环执行的代码;
}
循环的机制: 当循环条件为真, 执行循环体内的代码, 然后再判断循环条件, 为真一直继续这个过程, 知道判断出循环条件为假, 终止并跳出整个while循环.
注意:
1.一定要在外界定义一个循环变量;
2.一定要在循环的内部更改循环变量!
这两点缺一不可, 不然会陷入死循环!!!
练习:
1> 从键盘上随机输入一个数, 求出这个数的位数
Console.WriteLine("请输入一个数:");
int num = int.Parse(Console.ReadLine());
int i = ;
while (num != )
{
num /= ;
i++;
}
Console.WriteLine(i);
2> 从键盘上随机输入一个数, 求出这个数的二进制
int i = , c = ;
Console.WriteLine("请输出一个数:");
int num = int.Parse(Console.ReadLine());
while (num != )
{
c += (num % ) * i;
i *= ;
num = num / ; }
2.do while 循环
格式:
do
{
循环要执行的代码;
}while(循环条件)
练习
1.求使 sum = 1+2+3+4+...+N 小于10000的最大的整数N
int sum = , n = ;
do
{
sum += n;
n++;
} while (sum <= );
n--;
sum -= n;
n--;
Console.WriteLine(""+n+sum);
// 要注意这里n必须要减两次, 第一次是因为sum 多加了上一个n的值,导致直接打印出Sum的值超过了10000, n再减一次是因为那个使sum临界的n的值应当是上一个.
3.for循环
格式:
for (初始化循环变量; 循环条件; 循环变量自身的变化)
{
循环执行的代码;
}

练习
1.打印1-100内既不包含7又不是7的倍数的数
for (int i = ; i <= ; i++)
{
if (!(i % == || i / == || i % == ))
{
Console.WriteLine(i);
}
}
2.打印1-100的奇数之和
int sum = ;
for (int i = ; i <= ; i++)
{
if (i % != )
{
sum += i;
}
}
Console.WriteLine(sum);
3.2continue 和 break
continue 是用来终止本次循环, 也就是说如果在程序执行的过程中遇到了continue 那么在循环执行的代码中continue之后的代码就不会被执行; 直接跳到一下个循环里, 也就是到了"循环变量自身的变化";
break 是用来终止循环, 在程序执行过程中如果遇到break, 那么不管有没有达到循环结束的条件, 整个循环(本层)都会被停止, 提前结束生命;
练习
1.从键盘上输入一个数, 判断这个数是否是质数;
int num = int.Parse(Console.ReadLine());
bool isB = false;
for (int i = ; i < num / ; i++)
{
if (num % i == )
{
isB = true;
break;
}
}
if (!isB)
{
Console.WriteLine("是质数");
}
2.打印图形

for (int i = ; i <= ; i++)
{
for (int j = ; j <= - i; j++)
{
Console.Write(" ");
}
for (int k = ; k <= i; k++)
{
Console.Write("* ");
}
Console.WriteLine();
}
for (int i = ; i >= ; i--)
{
for (int j = ; j >= i; j--)
{
Console.Write(" ");
}
for (int k = ; k <= i; k++)
{
Console.Write("* ");
}
Console.WriteLine();
}
3.打印九九乘法表
for (int i = ; i <= ; i++)
{
for (int j = ; j <= i; j++)
{
Console.Write("{0} * {1} = {2} ", j, i, j * i);
}
Console.WriteLine();
}
怎么选择这几种循环呢?
知道循环的次数 使用for 循环
知道循环的条件 使用while循环
也不一定非要这个样, 但是这样选择会让代码和逻辑更清晰简洁一点.
二.一维数组
数组的定义:
1.数据类型[] 数组名 = new 数据类型[数组长度] [ {元素1, 元素2, ...}]; 一开始可以不先赋值
2.数组是存放相同数据类型的容器;
3.数组的访问形式是通过下标的形式 数组名[下标] 下标是从0开始的;
4.数组的下标必须不能越界;
5.数组必须指定长度, 要么直接指定(第二个中括号直接写上长度), 要么间接指定(第二个中括号不写长度, 但必须赋值, 赋值的个数就自动决定了数组的长度);
6.数组是一个整体 , 不能直接参与运算, '=' 号除外;
foreach
专门遍历集合里的元素(只有只读性, 不能改写 只能使用它)
格式:
foreach( 类型 变量 in 集合名)
{
代码;
}
C#学习笔记03--循环和一维数组的更多相关文章
- SaToken学习笔记-03
SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...
- 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试
机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...
- OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓
本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
- 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)
<python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...
- C++ GUI Qt4学习笔记03
C++ GUI Qt4学习笔记03 qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QM ...
- Redis:学习笔记-03
Redis:学习笔记-03 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 7. Redis配置文件 启动 ...
- Julia 学习笔记(一):数组
个人向,只会记录一些需要注意的点. 前言 学习 Julia 已经有一段时间了,但是进步缓慢.这一方面是最近代码写得少,一方面是 Julia 学习资料少.中文资料更少,但也有我没做笔记的缘故导致学习效率 ...
- xml基础学习笔记03
继续上篇xml学习笔记,坚持.坚持.再坚持啊.... 本篇主要记录: 35.XML节点的删除与修改 36集.用XML制作RSS订阅源 <?php /* 笔记: 35.XML节点的删除与修改 使用 ...
随机推荐
- OptimalSolution(5)--数组和矩阵问题(2)2
一.找到无序数组中最小的k个数 二.在数组中找到出现次数大于N/K的数 三.最长的可整合子数组的长度 四.不重复打印排序数组中相加和为给定值的所有二元组和三元组 五.未排序正数数组中累加和为给定值的最 ...
- springcloud之Feign、ribbon设置超时时间和重试机制的总结
一 超时时间配置 如果在一个微服务当中对同一个接口同时配置了Hystrix与ribbon两个超时时间,则在接口调用的时候,两个计时器会同时读秒. 比如,访问一个接口需要2秒,你的ribbon配置的超时 ...
- R.Swift优雅加载资源文件
在新的项目中,接触到了一个很不错的框架R.swift,可以帮助更方便安全的使用资源文件,相信已经使用过的或者还没有接触过的,一旦使用过了解过它,会爱上这个框架工具! 一.R.swift特点 当项目bu ...
- 中级前端必备知识点(2.5w+月薪)进阶 (分享知乎 : 平酱的填坑札记 关注专栏 用户:安大虎)
前端已经不再是5年前刚开始火爆时候的那种html+css+js+jquery的趋势了,现在需要你完全了解前端开发的同时,还要具备将上线.持续化.闭环.自动化.语义化.封装......等概念熟练运用到工 ...
- PHP str_replace的用法
PHP str_replace的用法 1 替换单个字符<pre><?phpecho str_replace("world","Shanghai" ...
- 来了!GitHub for mobile 发布!iOS beta 版已来,Android 版即将发布
北京时间 2019 年 11 月 14 日,在 GitHub Universe 2019大会上,GitHub 正式发布了 GitHub for mobile,支持 iOS 与 Android 两大移动 ...
- C语言I博客作业08
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业 我在这个课程的目标是 熟悉使用while和do-while结构解决问题 这个作业在那个具体方面帮助我实现目标 pta题目及查找的资料 ...
- C++程序员学Python
目录 C++程序员学Python 第二章.变量和数据类型 1.注释语句前用#: 2.常用于大小写函数: 第三章.列表 1.列表简述 2.修改,增加,插入,删除列表元素 第四章操作列表 1.遍历 2.创 ...
- springboot使用dubbo和zookeeper
2019-11-17 yls 创建服务接口模块 接口工程只提供接口,不提供实现,在后面的提供者和消费者中使用 在使用接口的模块中只需要写具体实现类,避免了在每个模块中重复编写接口 在接口中引入依赖包 ...
- Docker学习-Docker搭建Consul集群
1.环境准备 Linux机器三台 网络互通配置可以参考 https://www.cnblogs.com/woxpp/p/11858257.html 192.168.50.21 192.168.50.2 ...