C# 编程核心:控制流与方法调用详解

在编程中,控制流和方法调用是构建程序逻辑的两大基石。它们决定了代码的执行顺序和模块化协作方式。本文将从基础概念出发,结合代码示例,深入解析这两部分内容。

控制流:程序执行的指挥棒

控制流决定了代码的执行路径,通过条件判断、循环和跳转语句,实现灵活的逻辑控制。

选择语句:按条件执行不同代码

if:执行单条符合条件的语句

if (age >= 18) Console.WriteLine("成年");

if…else:二选一逻辑

if (score >= 60) Console.WriteLine("及格"); 
else Console.WriteLine("不及格");

switch:多分支选择(适用于离散值判断)

switch (dayOfWeek) {case "Monday": Console.WriteLine("工作日"); break;case "Sunday": Console.WriteLine("休息日"); break;
}

迭代语句:重复执行代码块

for循环:已知循环次数时使用

 for (int i = 0; i < 5; i++) { /* 执行5次 */ }

while循环:在循环顶部判断条件

while (queue.Count > 0) { /* 处理队列 */ }

do…while循环:至少执行一次循环体

do { /* 执行操作 */ } while (condition);

foreach循环:遍历集合/数组

foreach (var item in list) { /* 处理每个元素 */ }

跳转语句:改变执行流程

break:立即退出循环

for (int i = 0; i < 10; i++) {if (i == 5) break; // 当i=5时终止循环 
}

continue:跳过当前循环迭代

for (int i = 0; i < 10; i++) {if (i % 2 == 0) continue; // 跳过偶数Console.WriteLine(i);
}

return:返回方法调用处

public int Calculate() {if (input < 0) return -1; // 提前返回 // 其他计算逻辑 
}

方法调用:模块化编程的桥梁

方法调用是代码复用的核心机制,通过参数传递实现数据交互。

调用流程四步解析

  • 挂起当前方法:在调用点暂停执行
  • 转移控制权:跳转到被调用方法的入口
  • 执行被调用方法:完成所有代码逻辑
  • 返回控制权:回到调用处继续执行

方法调用示例

public class Program {public static void Main() {PrintDateAndTime(); // 调用方法 Console.WriteLine("继续执行Main方法");}public static void PrintDateAndTime() {Console.WriteLine(DateTime.Now.ToString());}
}

总结与进阶

  • 控制流是程序逻辑的骨架,通过条件分支、循环和跳转实现复杂逻辑
  • 方法调用是模块化编程的关键,通过封装功能提升代码复用性
  • 更多细节(如goto语句的慎用场景、参数传递机制)将在后续章节深入探讨

掌握这两项基础能力,你将能更高效地组织代码结构,构建出健壮且易维护的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/904077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel学习

sentinel是阿里巴巴研发的一款微服务组件&#xff0c;主要为用户提供服务保护&#xff0c;包括限流熔断等措施 &#xff08;一&#xff09;主要功能 流量控制&#xff08;限流&#xff09;&#xff1a;比如限制1s内有多少请求能到达服务器&#xff0c;防止大量请求打崩服务器…

Linux中进程的属性:进程优先级

一、优先级和进程优先级 1.1什么是优先级 优先级就是获取某种资源的先后顺序&#xff0c;比如打饭时排队&#xff1a;排队就是在确认优先级 1.2为什么要有优先级 本质上其实是目标资源相对于需求者来说比较少&#xff0c;如CPU&#xff0c;磁盘&#xff0c;显示器&#xff…

基于LangChain 实现 Advanced RAG-后检索优化(上)-Reranker

摘要 Advanced RAG 的后检索优化&#xff0c;是指在检索环节完成后、最终响应生成前&#xff0c;通过一系列策略与技术对检索结果进行深度处理&#xff0c;旨在显著提升生成内容的相关性与质量。在这些优化手段中&#xff0c;重排序优化&#xff08;Reranker&#xff09;作为核…

【云备份】热点管理模块

目录 1.热点管理文件的基本思路 2.热点管理类的设计 3.热点管理类的实现 1.热点管理文件的基本思路 服务器端的热点文件管理是对上传的非热点文件进行压缩存储&#xff0c;节省磁盘空间。 而热点文件的判断在于上传的文件的最后一次访问时间是否在热点判断时间之内。 实…

LeetCode 560. 和为 K 的子数组 | 前缀和与哈希表的巧妙应用

文章目录 方法思路&#xff1a;前缀和 哈希表核心思想关键步骤 代码实现复杂度分析示例解析总结 题目描述 给定一个整数数组 nums 和一个整数 k&#xff0c;请统计并返回该数组中和为 k 的子数组的数量。 子数组是数组中连续的非空元素序列。 示例 输入&#xff1a;nums …

Windows配置grpc

Windows配置grpc 方法一1. 使用git下载grph下载速度慢可以使用国内镜像1.1 更新子模块 2. 使用Cmake进行编译2.1 GUI编译2.2 命令行直接编译 3. 使用Visual Studio 生成解决方法 方法二1. 安装 vcpkg3.配置vckg的环境变量2. 使用 vcpkg 安装 gRPC3. 安装 Protobuf4. 配置 CMake…

【算法基础】快速排序算法 - JAVA

一、算法基础 1.1 什么是快速排序 快速排序&#xff08;Quick Sort&#xff09;是一种高效的分治排序算法&#xff0c;由英国计算机科学家Tony Hoare于1960年提出。它的核心思想是&#xff1a; 选择一个基准元素&#xff08;pivot&#xff09;将数组分成两部分&#xff1a;小…

Linux用户管理命令和用户组管理命令

一、用户管理命令 1.1、adduser 添加新用户 1、基本语法 adduser 用户名 &#xff08;功能描述&#xff1a;添加新用户&#xff09; 应用场景1&#xff1a;企业开发&#xff0c;多人协同&#xff08;也会有多人使用相同的一个低权限用户&#xff09;。 应用场景2&#x…

记录两个免费开源又好用的后台模版vue3

一.element-plus-admin 一套基于vue3、element-plus、typesScript、vite的后台集成方案 1.简介 vue-element-plus-admin 是一个基于 element-plus 免费开源的中后台模版。使用了最新的 Vue3&#xff0c;Vite&#xff0c;Typescript等主流技术开发&#xff0c;开箱即用的中后…

Flip PDF Plus Corp7.7.22电子书制作软件

flip pdf plus corporate7.7.22中文版由FlipBuilder官方出品的一款企业级的翻页电子书制作软件&#xff0c;拥有丰富的模板&#xff0c;主题和动画场景&#xff0c;每本书最大页数1000页&#xff0c;每本书的最大大小1GB&#xff0c;即可以帮助企业用户制作好丰富的电子书籍。 …

C语言蓝桥杯真题代码

以下是不同届蓝桥杯C语言真题代码示例&#xff0c;供参考&#xff1a; 第十三届蓝桥杯省赛 C语言大学B组 真题&#xff1a;卡片 题目&#xff1a;小蓝有很多数字卡片&#xff0c;每张卡片上都是数字1-9。他想拼出1到n的数列&#xff0c;每张卡片只能用一次&#xff0c;求最大的…

[Windows] Kazumi番剧采集v1.6.9:支持自定义规则+在线观看+弹幕,跨平台下载

[Windows] Kazumi番剧采集 链接&#xff1a;https://pan.xunlei.com/s/VOPLMhEQD7qixvAnoy73NUK9A1?pwdtu6i# Kazumi是一款基于框架; 开发的轻量级番剧采集工具&#xff0c;专为ACG爱好者设计。通过;自定义XPath规则; 实现精准内容抓取&#xff0c;支持多平台&#xff08;An…

探秘数据结构:构建高效算法的灵魂密码

摘要 数据结构作为计算机科学的基石&#xff0c;其设计与优化直接影响算法效率、资源利用和系统可靠性。本文系统阐述数据结构的基础理论、分类及其核心操作&#xff0c;涵盖数组、链表、栈、队列、树、图、哈希表与堆等经典类型。深入探讨各结构的应用场景与性能对比&#xf…

机器人--架构及设备

机器人的四大组成部分 控制系统 驱控系统 执行系统 电机属于执行系统的设备。 传感系统 传感系统分为内部传感系统和外部传感系统。 内部传感系统(内部传感器)&#xff1a; 用于获取机器人内部信息&#xff0c;比如IMU&#xff0c;力传感器等。 外部传感系统(外部传感器):…

人工智能:如何快速筛选出excel中某列存在跳号的单元格位置?

前提&#xff1a; 电脑上必须提前安装好了【office AI】软件工具 方法如下&#xff1a; 1、打开要操作的excel表格&#xff0c;点击上方的【officeAI】&#xff0c;再点击左边的【右侧面板】按钮&#xff0c;就会出现如下右侧的【OfficeAI助手】 2、在OfficeAI助手的聊天框…

Spring MVC入门

介绍了Spring MVC框架的概念、特征及核心功能&#xff0c;通过案例详细介绍了Spring MVC开发所需要的开发环境以及基本的开发步骤。 一、Spring MVC框架概述 Spring MVC是Spring框架的一个模块&#xff0c;是一个基于Java的实现了MVC设计模式的轻量级Web框架。它通过一套注解和…

贪心算法求解边界最大数

贪心算法求解边界最大数&#xff08;拼多多2504、排列问题&#xff09; 多多有两个仅由正整数构成的数列 s1 和 s2&#xff0c;多多可以对 s1 进行任意次操作&#xff0c;每次操作可以置换 s1 中任意两个数字的位置。多多想让数列 s1 构成的数字尽可能大&#xff0c;但是不能比…

Ubuntu ZLMediakit的标准配置文件(rtsp->rtmp->hls)

最近在工作中遇到不生成hls资源的问题,后面发现是配置文件有误,特此记录正确的config.ini配置文件,方便查阅。 最终解决方案,通过下面这种格式可以访问到flv视频,具体为什么不太清楚,rtmp格式:rtmp://39.113.48.113:8089/live/1744168516937396175 记录最终解决方案:ht…

# LeetCode 1007 行相等的最少多米诺旋转

LeetCode 1007 行相等的最少多米诺旋转 原题英文&#xff1a;Minimum Domino Rotations For Equal Row 难度&#xff1a;中等 | 标签&#xff1a;数组、贪心 1 题目重述 给定两行长度相同的多米诺骨牌&#xff1a; tops[i] 表示第 i 张骨牌上面的数字&#xff1b;bottoms[…

大数据技术:从趋势到变革的全景探索

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 在数字化时代的浪潮下,大数据已经不再是一个陌生的概念。从日常生活中的社交媒体,到企业决策支持系统,再到公共管理的大数据应用,它正在改变着我们的工作和生活方式。随着技术的进步,传统的数据…