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节点的删除与修改 使用 ...
随机推荐
- jquery链式原理.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ansible之roles
基于之前的博客介绍,我们已经了解了 tasks 和 handlers,那怎样组织 playbook 才是最好的方式呢?简单的回答就是:使用 roles ! Roles 基于一个已知的文件结构,去自动的 ...
- .NET Core 3.0 中间件 Middleware
中间件官网文档解释:中间件是一种装配到应用管道以处理请求和响应的软件 每个中间件: 选择是否将请求传递到管道中的下一个组件. 可在管道中的下一个组件前后执行工作. 使用 IApplicationBui ...
- 为什么磁盘慢会导致Linux负载飙升?
一.CPU利用率和负载率的区别 这里要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个top命令中进行显示.CPU利用率显示的是程序在运行期间实时占用的CPU百分比,这是对 ...
- PMD-Java代码静态分析工具使用
如今,使用代码分析工具来代替人工进行代码审查,已经是大势所趋了.用于Java代码检测的工具中,不乏许许多多的佼佼者,其中PMD就是其中一款.PMD既可以独立运行,也可以以命令行的形式运行,还可以作为插 ...
- Weed:线段树
观察复杂度,是log级别以下回答询问的. O(1)?逗我kx呢? 自然而然地想到线段树. 学长讲的原题啊考场上还不会打. 线段树上的每个节点都表示一个操作区间. 线段树上维护的权值有3个:这个子区间一 ...
- windows使用docker运行mysql等工具(二)安装运行mysql
今天接着上一篇的内容继续来学习安装运行mysql.建议先阅读第一篇:windows安装docker 一 查看mysql版本 如果想知道mysql镜像具体有哪几个版本,需要去docker hub查看. ...
- mysql update获取主键
mysql update获取主键<pre>SET @update_id := 0;UPDATE mobantestinfo1 SET info2 = 'value', id = (SELE ...
- egret编译速度慢解决方法
egret编译速度慢解决方法 直接用增量更新egret run -a 每次改完代码 保存都会自动编译
- Prometheus客户端开发:腾讯云CLB
一:简介 随着prometheus的使用人群逐渐扩大,官方定义的client exporter虽然能满足我们的大部分需求,但是很多监控还是需要我们自定义开发,以下内容就是基于腾讯云SDK,对腾讯云CL ...