第三章 C#程序结构 (3.3 循环结构)
(1) while循环
当表达式为真,则执行下面的语句;语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句;然后再判断表达式是否为真……就这样一直循环下去,直到表达式为假,跳出循环。
【案例】
输入一字符串,以按Enter键结束,统计该字符中英文字符、数字字符及其他字符的个数。
【案例目的】
掌握while语句的用法。
【代码及分析】
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
char c = Convert.ToChar(Console.Read());
int n = ;//n为统计一共输入了多少个字符
int nz = , ns = ,nq = ;
while (c != '\n')
{
if ((c >= 'a' && c <= 'z')|| (c >= 'A' && c<= 'Z'))//表示不管输入的英文字母是大小写都一并统计
nz++;//统计英文字符的变量 else if (c>=''&&c<='')//输入的数字字符统计
ns++;//统计数字字符的变量 else
nq++;//统计其他字符的变量 c = Convert.ToChar(Console.Read());
n++;
}
Console.WriteLine("一共输入{0}个字符,其中英文字符有{1},数字字符有{2},其他字符有{3}", n - , nz, ns, nq - );
Console.ReadLine();
}
}
}
运行结果如下:
(2)do-while循环
do…while 是先执行一次循环体,然后再判别表达式
【案例】
本案例输入一个自然数,要求将自然数的每一位数字按反序输出,例如:输入0254131,输出1314520 。
【案例目的】
掌握do-while循环语句及与while语句的区别。
【代码及分析】
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
int num, digital;
Console.WriteLine("请输入一个自然数:");
num = int.Parse(Console.ReadLine());
do
{
digital = num % ;
num /= ;
Console.Write(digital);
} while (num > );
Console.ReadLine();
}
}
}
运行结果如下:
(3)for循环
表达式 1 首先执行且只执行一次;然后执行表达式 2,通常都是一个用于判定条件的表达式,如果表达式 2 条件成立,就执行(需要执行的语句);然后再执行表达式 3;再判断表达式 2,执行(需要执行的语句);再执行表达式 3.....一直到表达式 2 不成立时,跳出循环继续执行循环后面的语句。
【案例1】求阶乘的和
【代码】
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int sum = ;
int n = int.Parse(Console.ReadLine());
for (int i = ; i < n; i++)
{
int sum1 = ;//定义变量sum1,每次循环都赋予其初始值1,求阶乘专用
for (int j = ; j <= i + ; j++)
{
sum1 = sum1 * j;
}
sum = sum + sum1;//将每次阶乘的和相加
}
Console.WriteLine(sum);
Console.ReadLine();
}
}
}
运行结果如下:
第三章 C#程序结构 (3.3 循环结构)的更多相关文章
- 《算法》第三章部分程序 part 6
▶ 书中第三章部分程序,加上自己补充的代码,包含双向索引表.文建索引.稀疏向量类型 ● 双向索引表 package package01; import edu.princeton.cs.algs4.S ...
- 《算法》第三章部分程序 part 5
▶ 书中第三章部分程序,加上自己补充的代码,包含公共符号表.集合类型 ● 公共符号表,用于普通查找表的基本类 package package01; import java.util.NoSuchEle ...
- 《算法》第三章部分程序 part 4
▶ 书中第三章部分程序,加上自己补充的代码,包括散列表.线性探查表 ● 散列表 package package01; import edu.princeton.cs.algs4.Queue; impo ...
- 《算法》第三章部分程序 part 3
▶ 书中第三章部分程序,加上自己补充的代码,红黑树 ● 红黑树,大部分方法与注释与二叉树相同 package package01; import java.util.NoSuchElementExce ...
- 《算法》第三章部分程序 part 2
▶ 书中第三章部分程序,加上自己补充的代码,平衡二叉搜索树 ● 平衡二叉搜索树 package package01; import java.util.NoSuchElementException; ...
- 《算法》第三章部分程序 part 1
▶ 书中第三章部分程序,加上自己补充的代码,包括单词频率统计,(单链表)顺序查找表,二分查找表 ● 单词频率统计 package package01; import edu.princeton.cs. ...
- 第三章 C#程序结构(3.1 顺序与选择结构)
[案例]输入某一学生的成绩,输出其对应的档次.具体规定:90分以上为优秀,80分以上至89分为良好,70分至79分为一般,60分至69分为合格,59以下为不及格.如果输入的分数小于0或大于100,则输 ...
- 第四章:条件语句(if)和循环结构(while)
1.流程控制 含义与作用 Python程序执行,一定按照某种规律在执行 a.宏观一定是自上而下(逻辑上方代码一定比逻辑下方代码先执行):顺序结构b.遇到需要条件判断选择不同执行路线的执行方式:分支结构 ...
- JS 选择结构语句与循环结构语句
笔记整理自:廖雪峰老师的JS教程 选择结构 与Java使用一致. 需要注意的 JavaScript把null.undefined.0.NaN和空字符串''视为false,其他值一概视为true. 循环 ...
- 第三章 C#程序结构[3.2 选择结构的应用(Windows窗体应用程序)(四)]
[案例]设计一个顾客选购商品的系统.其中,顾客身份有两类,一类是VIP,另一类是普通会员:商品种类有3种.分别是上衣.裤子和鞋子.其中,VIP享受8折优惠和商店赠送的礼品,而普通会员都不享受.单击[确 ...
随机推荐
- Java容器解析系列(10) Map AbstractMap 详解
前面介绍了List和Queue相关源码,这篇开始,我们先来学习一种java集合中的除Collection外的另一个分支------Map,这一分支的类图结构如下: 这里为什么不先介绍Set相关:因为很 ...
- Problem E: 平面上的点和线——Point类、Line类 (V)
Description 在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定,两点确定一条线段.现在我们封装一个“Point类”和“Line类”来实现平面上的点的操作. 根据“append ...
- 函数QFileSystemModelPrivate::_q_fileSystemChanged
由于Qt的体系过于庞大,即使是某个模块,分析起来也十分困难.对于QFileSystemModel,我们在这里对单个重要函数慢慢分析 1 /*! \internal The thread has rec ...
- Spring学习札记(一)
写在前面:spring的两大特点:IOC与aop.IOC(Inverse of Control):控制反转,也可以称为依赖倒置.降低耦合.AOP:即面向切面编程. 从Spring的角度看,AOP最大的 ...
- holer实现外网访问本地tomcat
外网访问内网Tomcat 内网主机上安装了Tomcat,只能在局域网内访问,怎样从公网也能访问本地Tomcat? 本文将介绍使用holer实现的具体步骤. 1. 准备工作 1.1 安装Java 1.7 ...
- TowSum
- oracle存储过程调试报错 ORA-0131 Insufficient privileges 处理
必须使用oracle用户登录oracle@sqlplus system/system123 as sysdba 以SYS用户登录数据库,执行赋权操作: grant DEBUG CONNECT SES ...
- sublime快捷键使用
sublime常用快捷键 自己觉得比较实用的sublime快捷键有: Ctrl+/..................注释 Ctrl+滚动..................字体变大.缩小 Ctrl+ ...
- xterm配置
最近转到i3wm桌面下, 发现调用xfce4-terminal有些慢,索性卸载掉一切所谓高级的终端,使用xterm,其实这个才是更牛的家伙. 安装 apt install xterm in i3-wm ...
- 小程序radio样式修改
.city-radio-group-label .city-label-radio { //label样式 padding: 15rpx 50rpx; position: relativ ...