这篇文章主要介绍了C#流程控制详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
流程控制语句分类
- 分支语句: if语句和switch语句
- 迭代语句
- 跳转语句
1、if语句
if (判断条件表达式){ 表达式结果为true时执行}else{表达式结果为false时执行}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace if语句
{
class Program
{
static void Main(string[] args)
{
//判断a变量与10的关系
Console.WriteLine("请输入你要比较的第一个数字");
int a=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入你要比较的第而个数字");
//int.parse 用于将屏幕输入的语句转换为整型
int b = int.Parse(Console.ReadLine());
if (a < b)
{
Console.WriteLine("您输入的第一个数字{0}小于第二个数字{1}", a,b);
}
else if (a == b)
{
Console.WriteLine("您输入的第一个数字{0}等于第二个数字{1}", a,b);
}
else {
Console.WriteLine("您输入的第一个数字{0}大于第二个数字{1}", a,b);
}
Console.ReadKey();
}
}
}
2、switch
输入1显示为星期一,依次类推
swithc(条件表达式){
case 常量表达式:条件语句;
case 常量表达式:条件语句;
case 常量表达式:条件语句;
default:条件表达式
}
控件无法从最终用例标签(XX)脱离开关——程序无法判定为结束,所以必须加一个break;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace switch控制语句
{
class Program
{
static void Main(string[] args)
{
// 输入一显示星期一,一次类推
Console.WriteLine("请输入1-7的数字");
int week = int.Parse(Console.ReadLine());
switch (week) {
case 1: Console.WriteLine("星期一"); break; //结束当前代码体
case 2: Console.WriteLine("星期二"); break;
case 3: Console.WriteLine("星期三"); break;
case 4: Console.WriteLine("星期四"); break;
case 5: Console.WriteLine("星期五"); break;
case 6: Console.WriteLine("星期六"); break;
case 7: Console.WriteLine("星期日"); break;
default: Console.WriteLine("您输入的数据错误"); break; //超出规定值设置相应提示
}
Console.ReadKey();
//判断2020年每个月的天数, 1,3,5,7,8,10,12为31天,4,6,9,11位30天,二月29天
Console.WriteLine("请输月份数");
int month = int.Parse(Console.ReadLine());
switch (month)
{
case 2: Console.WriteLine("您输入的{0}月份有28天",month); break;
case 4:
case 6:
case 9:
case 11:
Console.WriteLine("您输入的{0}月份有30天",month); break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine("您输入的{0}月份有31天", month); break;
default: Console.WriteLine("您输入的{0}月份错误", month); break;
}
Console.ReadKey();
}
}
}
3、三位运算符
条件判断表达式?成立是执行的语句:不成立时执行的语句
三元运算符适用条件:只使用与判断具有两个结果的情况
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 三位运算符
{
class Program
{
static void Main(string[] args)
{
// 判断输入述职与10的关系(<10 提示小于10, >=10提示大于等于10)
Console.WriteLine("请输入您要比较的数据");
int number = int.Parse(Console.ReadLine());
//Console.WriteLine(number < 10 ? Console.WriteLine("小于10") : Console.WriteLine("大于等于10") );
Console.WriteLine(number < 10 ? "小于10" : "大于等于10");
Console.ReadKey();
}
}
}
4、迭代语句之while语句
4.1 迭代语句概述
迭代语句时程序中重复的执行,直到满足指定以条件才停止的一段代码。当用户想重复执行某些语句时,可依据当前不同的任务,
选择不同的循环依据使用,分别是:
- while语句
- do……while语句
- for语句
- foreach语句
4.2 while语句
while(条件表达式){
代码语句
}
while语句当条件满足时才执行
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace while语句
{
class Program
{
static void Main(string[] args)
{
//输出1-50的数字到屏幕上
int a = 1;
while (a<=50){
Console.WriteLine(a);
a++;
}
Console.ReadKey();
}
}
}
5、迭代语句之do……while
do{
循环体语句
}while();
do……while语句至少执行一次,即使条件不成立也会执行一次
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace do__while
{
class Program
{
static void Main(string[] args)
{
//输出1-50的数字到屏幕上
int num = 0;
do {
num++;
Console.WriteLine(num);
} while (num < 50);
// 计算现金存入银行多长时间才可以答案到我们的预期收益(均按一年期定期存款,到期后自动转存)
// 分析题目需要的变量 :本金, 目标收益,利率 时间(年)
// 一年的收益: 本金*(1+利率)*1年
double Balace = 0;
double Rate = 0;
int Year = 0;
double TargetBalace = 0;
Console.WriteLine("请输入您的本金");
Balace = double.Parse(Console.ReadLine());
Console.WriteLine("请输入您的当前利率百分比");
Rate = double.Parse(Console.ReadLine())/100;
Console.WriteLine("请输入您的目标收益");
do {
TargetBalace = double.Parse(Console.ReadLine());
if (TargetBalace<Balace) {
Console.WriteLine("恭喜您现在已经拥有了{0}元,请输入一个更大的目标",TargetBalace);
}
} while (TargetBalace<Balace);
do
{
Balace *= (Rate + 1);
Year++;
} while (Balace < TargetBalace);
Console.WriteLine("您将在{0}年内,获得{1}元的收益",Year,Balace);
Console.ReadKey();
}
}
}
6、迭代语句之for循环语句
for循环可以循环次数的限定,并维护自己的计时器;
有时候我们会省略初始条件,判断条件,循环条件,但两个分号不能省略
for(初始条件;判断条件;循环条件){
循环语句
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace for循环语句
{
class Program
{
static void Main(string[] args)
{
//求输入数据的阶乘
// 1!=1 2!=2x1; 3!=3x2x1
Console.WriteLine("请输入你要计算的阶乘数");
for (;;) {
int num = int.Parse(Console.ReadLine());
int result = 1;
for (int i=num; i!=0; i--) {
result *= i;
};
Console.WriteLine("{0}的阶乘结果是{1}", num, result);
};
//Console.ReadKey();
}
}
}
for循环嵌套(九九乘法表)
循环嵌套就是一个循环中嵌套着另一个循环
使用for循环时,一般在for循环语句进行声明循环计数次的变量
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace for循环语句
{
class Program
{
static void Main(string[] args)
{
//九九乘法表
Console.WriteLine("==================九九乘法口诀=========================");
for (int i = 1; i < 10; i++) {
for (int j=1; j<= i; j++) {
Console.Write("{0}X{1}={2}\t", j, i, j * i);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
7、迭代语句之foreach
foreach提供了一个for语句的捷径,而且还存进了集合类更为一致
foreach(类型;变量;in 集合){
代码体
}
string类型(字符串)可以看成是char类型(字符)的一个集合
char.IsWhiteSpace© 判断字符是不是空格
foreach每执行一内含代码,循环变量就会一次读取集合中的一个元素,向当时循环便利
此处循环变量只是一个只读型的局部变量,这个值如果被修改编译会报错
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace @foreach
{
class Program
{
static void Main(string[] args)
{
//将语句识别为单词,并逐行输出
//语句用string类型,字母用char
Console.WriteLine("请输入一句英文语句");
string sentence = Console.ReadLine();
foreach (char word in sentence)
{
if (char.IsWhiteSpace(word))
{
Console.WriteLine();
}
else
{
Console.Write(word);
//word='t'; //foreach语句的迭代变量不允许重新赋值
}
}
Console.ReadLine();
}
}
}
8、跳转语句之break语句
跳转语句是程序运行到某一位置时,可以跳转到程序中另一行代码的语句
- break:1)switch语句中用于从case语句中跳出,结束switch分支语句。2)用于跳出迭代语句结束当前训话
- continute语句
- goto语句
- return语句
通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6】7的倍数是,跳出for迭代语句。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace break语句
{
class Program
{
static void Main(string[] args)
{
//通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6、7的倍数是,跳出for迭代语句。
Console.WriteLine("输出1~500这500个数,每行输出10个数");
for (int i=1;i<501;i++) {
if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0) {
Console.WriteLine();
Console.WriteLine("2、3、4、5、6、7的最小公倍数倍数是"+i);
break;
}
if (i % 10 == 0)
{
Console.WriteLine(i);
}
else Console.Write(i + "\t");
}
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace break语句
{
class Program
{
static void Main(string[] args)
{
//通过迭代语句,准备输出1~500这500个数,每行输出10个数。当输出的值同时是2、3、4、5、6、7的倍数是,跳出for迭代语句。
Console.WriteLine("输出1~500这500个数,每行输出10个数");
for (int i=1;i<501;i++) {
if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0 && i % 5 == 0 && i % 6 == 0 && i % 7 == 0) break;
//{
// Console.WriteLine();
// Console.WriteLine("2、3、4、5、6、7的最小公倍数倍数是"+i);
// break;
/
本文标题为:C#流程控制详解
基础教程推荐
- winform把Office转成PDF文件 2023-06-14
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C#类和结构详解 2023-05-30
- C# 调用WebService的方法 2023-03-09
- C# windows语音识别与朗读实例 2023-04-27
- C#控制台实现飞行棋小游戏 2023-04-22
- unity实现动态排行榜 2023-04-27
- C# List实现行转列的通用方案 2022-11-02
- ZooKeeper的安装及部署教程 2023-01-22
- 一个读写csv文件的C#类 2022-11-06