【C#基础学习】第九章、语句

C# 第九章 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 小型资源 { /// /// 文件类 /// public class MyFile { //文件名 public s 阅读详情

目录

语句

1.程序控制流语句

1.1 选择语句

1.1.1 if

if语句的补充

1.1.2 if...else

if...else语法:逻辑表达式为真,则执行块内语句;为假,则执行else下的块语句。

1.1.3 switch

1.2 循环语句

1.2.1 while

1.2.2 do...while

1.2.3 for

for语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }

循环的补充

1.2.4 foreach

foreach语法:

foreach(数据类型  变量名  in  数组名){    //语句块;}

1.3 跳转语句

1.3.1 break

1.3.2 continue

1.3.3 return(简述)

1.3.4 goto

注意:

1.3.5 throw(简述)

2.using语句

2.1 包装资源的使用

2.2 using的补充和嵌套

3.其他语句


语句

C#的语句与C和C++的语句类似。

不同点在于数字在C#中没有布尔意义。

语句的定义:

  • 语句是描述某个类型或让程序执行某个动作的源代码指令
  • 语句主要有三种类型
    • 声明语句        声明类型或变量
    • 嵌入语句        执行动作或管理控制流
    • 标签语句        控制跳转
  •  简单语句由一个表达式和末尾的分号组成
  • 块由一个大括号组成

示例代码段:

int x=10; //简单声明

int z;   //简单声明
z=0;      //简单声明
;        

{              //块
    int y;     //简单声明
    z=x+y;    //嵌入语句

    if(x<z)    //嵌入语句
        ;      //空语句(仅由一个分号组成)
    
    top:y=30;//标签语句
    {
        ...    //嵌套块
    }          //结束嵌套块
}              //结束块

1.程序控制流语句

程序流程结构:

  • C#支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
    • 顺序结构:程序按顺序执行,不发生跳转
    • 选择结构:依据条件是否满足,有选择的执行相应功能
    • 循环结构:依据条件是否满足,循环多次执行某段代码

1.1 选择语句

类似分岔路,每条路都通向同一个方向,只是这一段风景不同。

1.1.1 if

if语法:逻辑表达式为真,则执行块内语句;为假,则跳过块内语句。

1.1

 示例代码段:

int x=10;

if(x<11)    //if(逻辑条件)  中逻辑条件必须要返回布尔值,不能填数字,因为C#中数字不具有布尔意义
{    //块
    x +=1;    //执行语句
}    //结束块

Console.Writeline(x);    //打印 “11”

注意:if后面不要加分号

if语句的补充

  • 嵌套if语句:在if语句中,可以嵌套使用if语句,达到更精确的条件判断
  • 关于if语句的区间性判断
    • 可以通过合理安排判断顺序和将区间性判断进行拆解来避免使用区间判断scdn参考文献
    • 也可以用逻辑运算符来表示scdn参考文献

1.1.2 if...else

if...else语法:逻辑表达式为真,则执行块内语句;为假,则执行else下的块语句。

1.2

示例:

int x=12;

if(x<11)       //逻辑条件1
{    //块
    x +=1;    //执行语句
}    //结束块
else if(x=12)  //逻辑条件2

else           //若以上逻辑条件都为假,则执行下面块语句
{
    x-=1;
}

Console.Writeline(x);    //打印 “11”

1.1.3 switch

switch语法图:

1.3
1.4

示例代码段:

int x=2;

switch(x)                         //计算X的值
{
    case 1:                       //如果x的值为1
        Console.Writeline(x+1);    
        break;                    //break为结束符
    case 2:                       //如果x的值为2
        Console.Writeline(x+2);
        break;
    case 3:                       //如果x的值为3
        Console.Writeline(x+3);
        break;
    default:                       //如果以上都没有x的值
        Console.Writeline(x);
        break;
}

//最后打印 “4”

1.2 循环语句

满足逻辑条件,则会一直循环块语句。为了避免一直满足逻辑条件,造成死循环,在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。

1.2.1 while

whlie语法:

1.5

 示例:

int x=10;        //设置变量x
int count=0;     //设置变量count来记录循环次数

while(x>5)
{
    count++;    //每循环一次,count加一
    Console.Writeline("执行第{0}次",count);    //会循环5次
    x--;        //每循环一次,x减一
}

1.2.2 do...while

do...while和while的区别在于do...whlie在判断逻辑条件之前会先执行一次。

1.6

 示例:

int x=10;        //设置变量x
int count=0;     //设置变量count来记录循环次数

do
{
    count++;    //每循环一次,count加一
    Console.Writeline("执行第{0}次",count);    //会循环5次
    x--;        //每循环一次,x减一
}while(x>5);

注意:不要忘了whilel()后面的分号

1.2.3 for

for语法:for(起始表达式;条件表达式;末尾循环体) { 循环语句; }

for语法图 :其中0 1 2 3表示for循环的执行顺序。

1.7

  • 注意:for循环中的表达式,要用分号进行分隔
  • 总结:while , do...while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用

循环的补充

  • 嵌套循环
    • 作用: 在循环体中再嵌套一层循环,解决一些实际问题
    • 例如我们想在屏幕中打印如下图片,就需要利用嵌套循环
      1.8

    • 外层循环执行一次 内层循环执行一轮

1.2.4 foreach

 foreach 循环用于列举出集合中所有的元素,foreach 语句中的表达式由关键字 in 隔开的两个项组成。


in 右边的项是集合名,in 左边的项是变量名,用来存放该集合中的每个元素。

foreach语法:

foreach(数据类型  变量名  in  数组名)
{
    //语句块;
}

示例代码段:记录五个商品每个的单价,以及它们的总和。

            int[] pays = { 90, 100, 2, 5, 3 };
            int sum = 0;
            int count = 1;
            foreach (int pay in pays)
            {            
                sum = sum + pay;
                Console.WriteLine("第" + count + "件" + "花费:" + pay + "元");
                count++;
            }
            Console.WriteLine("总共花费:" + sum + "元");

 编译图演示:

1.9

1.3 跳转语句

1.3.1 break

作用: 用于跳出选择结构或者循环结构

  • break使用的时机:
    • 出现在嵌套循环中,跳出最近的内层循环语句
    • 出现在switch条件语句中,作用是终止case并跳出switch
    • 出现在循环语句中,作用是跳出当前的循环语句

1.3.2 continue

作用:在==循环语句==中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环

注意:continue并没有使整个循环终止,而break会跳出循环

1.3.3 return(简述)

作用:直接作为一条语句表示当前函数(也可以叫做方法)结束。
语法:return; 或者 return 值;

解释:return后有东西,则是返回和函数返回类型一致的对象。

1.3.4 goto

作用:可以无条件跳转语句

语法: goto 标记;

解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置

代码段示例:

bool thing=true;

while(thing)
{
    if(thing)
        goto flagOne;
    else
        flagOne:thing=false;
}

注意:

  • goto语句可以跳到它所在块内的任何标记处,或跳到任何嵌套它所在块的标记处。但不能跳到它所在块内的嵌套块中。
  • goto语句不推荐使用,原因是它会导致代码难以维护、调试。这里仅在于了解。

1.3.5 throw(简述)

作用:发出程序执行期间出现异常的信号。

语法:throw [e];


2.using语句

 某些类型的非托管对象有数量限制或很耗费系统资源。我们需要在使用完这些对象后,尽快的释放它们就非常重要。而using语句的存在有助于简化该过程并确保这些资源被适当地处理。

 (其中资源指的是实现了System.Disposable接口的类或结构,而接口就是某些未实现的函数成员的集合,类和结构可以选择去实现它们。)

IDisposable接口含有单独一个名称为Dispose的方法,该方法的作用是释放资源。

使用资源的阶段由以下部分组成:

  • 分配资源
  • 使用资源
  • 处置资源

如图 :

1.10

2.1 包装资源的使用

using语句的存在减少了程序意外运行时,代码中隐藏的错误带来的潜在问题(即异常)。它整洁地包装了资源的使用。

有两种形式的using语句:

  • using(资源类型 标识符 = 表达式)使用资源
  • using(标识符)使用资源

第一种形式的using语句用的是处理异常的标准方法:把可能导致异常的代码放进一个try块中,并把无论有无错误都必须执行的代码放进finally块中。

它执行以下任务:

  • 分配资源
  • 把资源放进try中
  • 创建资源的Dispose方法的调用,为了避免发生异常导致Dispose方法不被调用,将它放进finally方法中

如图:

1.11

示例代码段:

using System;       //using指令,后面章节会讲
using System.IO;    //using指令

//using语句
//TextWriter资源打开一个文本文件,并向文件写入一行字符串
using (TextWriter tw = File.CreateText("Lincoln.txt"))
{
    tw.WriteLine("its fine");
}

            
//using语句
            
//TextWriter资源打开一个文本文件,并向文件写入一行字符串
            
using (TextReader tr = File.OpenText("Lincoln.txt"))
            
{
                
    string InputString;
               
    while (null != (InputString = tr.ReadLine()))
                    
    Console.WriteLine(InputString);
            
}


输入示例:

1.12

第二种形式能确保使用资源后总是调用Dispose方法,但不能防止在using语句已经施放资源后还使用该资源,这可能导致状态不一致。因此不推荐使用。

图1.13

2.2 using的补充和嵌套

语法:using(资源类型 标识符1 = 表达式1,标识符2 = 表达式2,...)使用资源

还可以嵌套:

//using语句
using (TextWriter tw = File.CreateText("Lincoln.txt"))
{
    tw.WriteLine("its fine");
    //using语句     
    using (TextReader tr = File.OpenText("Lincoln.txt"))
            
    {
                
        string InputString;
               
        while (null != (InputString = tr.ReadLine()))
                    
        Console.WriteLine(InputString);
            
    }
}

            

3.其他语句

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南 本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。 阅读详情

相关推荐

10分钟上手YOLOv11:最强姿态估计模型来了,代码开源,效果炸裂!

【10分钟玩转YOLOv11实时姿态估计】🚀 YOLOv11作为YOLO家族最新成员,在速度、精度和易用性上全面升级,尤其适用于姿态估计等复杂视觉任务。本文带您快速掌握: 1️⃣ 核心概念:姿态估计即识别人体17个关键点(如关节部位)并连接成数字骨架,是智能健身、体感游戏等应用的基础。 2️⃣ 技术优势: 超轻量级(最小仅2.9M参数) 极速推理(GPU仅1.7ms) 高精度(COCO mAP@50-95达50%) 3️⃣ 三步实操: ① 安装:pip install ultralytics ② 准备人物

weixin_41246802的博客 1787

C#中的Count函数

Count()函数是C#中常用的集合操作函数之一,用于获取一个集合中的元素数量。它具有多个重载版本,并可以接收不同类型的参数。本文将详细介绍每个重载版本的使用方法和示例。

Wod_7的博客 6345

Kettle安装与使用

Pentaho Data Integration作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Data mining)。勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。

jnrjian的博客 1万+

C# LINQ源码分析之Count

LINQ代码库中的Count方法作为数据统计的关键方法,经常被使用。在统计数据时候,Count方法是否每次都要遍历整个序列来获取序列元素个数,Count方法内容是否存在优化机制。为了更好的了解该方法的工作原理,我们从源码的角度对其进行分析。......

weixin_43263355的博客 4009

STM32读取BQ40Z50的数据

TI电池管理芯片BQ40Z50,通信协议是SMBUS,类似IIC,速率要求10-100KHz   用的STM32F103的硬件IIC读取电池的各种数值,源代码如下: ​ #include "iic.h" #include "stdio.h"  //***************************************************** // IIC2初始化函数:初始化ST...

百步登峰的博客 1万+

猿创征文|Qt 文件和目录应用讲解【QCoreApplication】【QFile、QFileInfo】【QTemporaryDir和QTemporaryFile】【QDir】【QFileSyste】

Qt 文件和目录精准讲解【QCoreApplication】【QFile、QFileInfo】【QTemporaryDir和QTemporaryFile】【QDir】【QFileSyste】【QFileDialog】 第一章 QCoreApplication类 第一节 QCoreApplication常用函数方法 第二节 QCoreApplication举例 第二章 QFile类 第一节 静态函数方法 第二节 成员函数方法 第三章 QFileInfo类 第一节 常用函数方法 第四章 QDir类

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 941

C#编程入门_循环_5

while循环 while循环适合在执行循环体前先判断执行条件的操作using System.Linq; using System.Text; using System.Threading.Tasks;namespace while循环 { class Program { static void Main(string[] args) {

杨勇博客之家 782

写给开发人员的实用密码学 - Hash算法

说到Hash(哈希),开发人员应该不陌生,比如Hash表是一种非常常用的数据结构,通过Hash表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。密...

云水木石 1503

巧用count与count()

在编写代码时,为了获得最佳性能和可读性,请尽量使用适当的集合类型和属性。如果你不确定集合的类型,可以查看其文档或使用。在这种情况下,没有性能更高的替代选项,你只能使用。的性能差异主要取决于。因此,在这种情况下,关键字进行类型检查。

weixin_38225763的博客 663

机器人轨迹规划——梯形速度轨迹(超详细)

机器人轨迹 这一系列轨迹教程将主要包括以下内容: 点到点轨迹(P2P) 五次多项式插值轨迹 三次多项式插值轨迹 梯形速度曲线轨迹 双S形速度曲线轨迹 多个自由度轨迹的时间同步 在线轨迹规划 多项式在线轨迹规划 梯形在线轨迹规划 双S形在线轨迹规划 非线性实时轨迹滤波 多点轨迹(Multi-point) 三次样条曲线(cubic spline) 贝赛尔曲线(Bezier Curve) B样条曲线(BSpline) 时间最优轨迹 三次样条时间最优轨迹 任意路径下的时间最优轨迹 时间

出门搔白首,若负平生志 1万+

微信浏览器input[file]拍照点确认后强刷新解决

微信浏览器input强刷新,input h5强刷新,微信浏览器上传图片后刷新,h5表单强刷新,h5调用拍照后返回首页,h5调用拍照后刷新,微信浏览器强制刷新,iOS上微信浏览器input强刷新,iOS上微信浏览器上传图片后强刷新,ios微信浏览器上传图片后页面刷数据,h5在ios浏览器闪频,h5在ios微信打开时强制刷新,ios手机上调用相机后页面刷新,ios手机上调用相机后页面后重置,ios拍照后刷新,ios拍照完页面大刷新

江拥羡橙的博客 1349

C#中使用Count方法获取List集合中符合条件的个数

很多时候操作List集合的过程中,我们需要根据特定的查询条件,获取List集合中有多少个实体对象符合查询条件,例如一批产品的对象List集合,如果这批产品的不合格数量大于10则重点备注。在C#中可以自己写for循环语句来逐条判断条件来实现,其实还有种更简单的方法就是使用Lambda表达式中的Count方法来实现,很多时候只需要一条语句。 例如,有个实体集合List studentList表示全校学生的集合数据,我们需要查找出ClassCode即班级代码等于A101班的学生的人......

liuyuan8886的博客 6096

Vue3+Openlayers教程导航页【目录】

欢迎来到 Vue3+Openlayers 系列教程,这里是我在 优快云 编写的所有 Vue3+Openlayers 系列相关文章的索引页,适合初学者到进阶用户系统阅读。👀 更多教程正在持续更新中,欢迎关注我,一起探索 Openlayers 的强大魅力!

小彭的博客 1261

C#图解教程 第九章 语句

语句什么是语句语句是描述某个类型或让程序执行某动作的源代码指令。语句主要有3类声明语句 声明类型或变量嵌入语句 执行动作或管理控制流标签语句 控制跳转例:语句示例int x=19; //简单声明 int z; //简单声明 { //块 int y=20; //简单声明 z=x+y; //嵌入语句 top:y=3...

HJH's Blog 405

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# 编程学习手册(一)

原文:zh.annas-archive.org/md5/43CC9F8096F66361F01960142D9E6C0F 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 C#是一种通用的、多范式的编程语言,结合了面向对象、命令式、泛型、函数式、声明式和动态编程。在发布后不久,C#就成为开发人员编写各种类型应用程序的首选之一。虽然它不是唯一针对 CLI 的语言(其他语言包括 VB.NET 和 F#),但它是编写桌面、Web、云和移动平台的.NET 应用程序的首选语言。 多年来,这种语言逐渐而稳定地

龙哥盟 1387

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C#系统学习第九章——面向对象编程基础

在 C# 的编程宇宙里,面向对象编程(OOP)如同搭建数字大厦的基石 —— 它用 “类” 与 “对象” 的概念,将现实世界的事物抽象为代码中的实体,以封装、继承、多态三大特性为工具,让程序不再是零散的指令堆砌,而是具有逻辑结构与复用能力的有机整体

徽程22级的在读学生 776

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Head First C# 中文版 第九章 读写文件 翻译完毕 PDF下载

第九章PDF下载:http://download.youkuaiyun.com/source/1344624另外:第八章PDF下载:http://download.youkuaiyun.com/source/1258221第七章PDF下载:http://download.youkuaiyun.com/source/1176195第六章PDF下载:http://download.youkuaiyun.com/sourc

My diary 756

C# Unity 2021 游戏开发学习指南(一)

Unity 是世界上最受欢迎的游戏引擎之一,服务于业余爱好者、专业 AAA 工作室和电影制作公司。虽然 Unity 因其作为 3D 工具的使用而闻名,但它有一系列专门的功能,支持从 2D 游戏和虚拟现实到后期制作和跨平台发布的所有内容。开发者喜欢它的拖放界面和内置功能,但真正让 Unity 更进一步的是能够编写自定义 C#脚本以实现行为和游戏机制的能力。对于有其他语言经验的资深程序员来说,学习编写 C#代码可能不是巨大的障碍,但对于没有编程经验的你来说,可能会感到有些令人畏惧。这正是本书的用武之地,因为我将

龙哥盟 1167

【C#基础学习】第十章、方法

本章主讲方法的定义和组成,方法的重载,栈帧和递归的定义。

Hoghst_debug的博客 1277

第九章 C# 基础

string,引用类型,string类型表示零或更多 Unicode 字符组成的序列, string 是 .NET Framework 中 String 的别名。代码示例: 2.字符串本质也是单字符的集合 二.Array 类的方法 1.Length 获取字符串的长度,即字符串中字符的个数. 2.IndexOf 返回整数,得到指定的字符串在原字符串中第一次出现的位置. 3.LastlndexOf 返回整数,得到指定的字符串在原字符串中最后一次出现的位置 从

qianduan2001_5的博客 227

c#程序设计实训报告心得体会_c#学习心得体会范文_c#程序设计心得体会

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。现结合自身,谈谈一些心得体会。本文是学习c#心得体会范文,仅供参考。刚学习C#的时候,感觉很难,做的时候出现很多错误而且我是照着书打代码还有错误,那时的感觉是迷茫的。在学习的过程中,我还是坚持下来,虽然学的不是很好,但是慢慢就理解了,现在也不要仿照书打代码。现在讲讲做项目的感想。我们项目做不好也有一个小原因,是因为...

weixin_39573822的博客 1万+

C# 机器学习实用指南(一)

在我们以信息技术为主的工作中,机器学习的必要性无处不在,并且被所有开发者、程序员和分析人员所需求。但为什么使用 C#进行机器学习呢?答案是,大多数生产级企业应用程序都是用 C#编写的,使用了诸如 Visual Studio、SQL Server、Unity 和 Microsoft Azure 等工具。本书通过各种概念、机器学习技术和各种机器学习工具的介绍,为用户提供了一种直观理解,这些工具可以帮助用户将诸如图像和运动检测、贝叶斯直觉、深度学习和信念等智能功能添加到 C# .NET 应用程序中。

龙哥盟 3615

学习C#理论第九章

结构/枚举/异常/泛型/操作符重载/XML/注释/dll/垃圾回收/资源清理

yang_jianfeng的博客 129

【C#学习笔记】第九章总结

《C#入门经典第七期》第九章定义类书后总结 类和接口定义 类用class关键字定义,接口用interface关键字定义。可以用public和internal关键字来定义类和接口的可访问性,类可以定义为abstract或sealed,以便控制继承性。父类和父接口在一个用逗号分隔开的列表中指定,放在类或接口名和一个冒号的后面。在类定义中,只能指定一个父类,且必须是列表中的第一项 构造函数和析构函...

q418030645的博客 405
上一篇: 【C#基础学习】第八章、运算符和表达式
下一篇: 【C#基础学习】第十章、方法
Ohrkaninchen
博客等级 码龄5年 18粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohrkaninchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值