C#控制流

news2025/5/19 2:52:59

🧩 一、控制流概述

C# 中的控制流语句用于根据条件或循环执行代码块。它们是程序逻辑的核心部分。


✅ 二、1. ifelse ifelse

int score = 85;

if (score >= 90)
{
    Console.WriteLine("优秀");
}
else if (score >= 60)
{
    Console.WriteLine("及格");
}
else
{
    Console.WriteLine("不及格");
}

✅ 三、2. switch 语句

示例:选择星期几

Console.Write("请输入星期几(1-7):");
int day = int.Parse(Console.ReadLine());

switch (day)
{
    case 1:
        Console.WriteLine("星期一");
        break;
    case 2:
        Console.WriteLine("星期二");
        break;
    case 3:
    case 4:
        Console.WriteLine("工作日");
        break;
    case 5:
        Console.WriteLine("星期五");
        break;
    case 6:
    case 7:
        Console.WriteLine("周末");
        break;
    default:
        Console.WriteLine("输入错误");
        break;
}

使用 when 条件匹配(C# 7+)

object value = 100;

switch (value)
{
    case int i when i > 0:
        Console.WriteLine("正整数");
        break;
    case int i when i < 0:
        Console.WriteLine("负整数");
        break;
    default:
        Console.WriteLine("其他类型或零");
        break;
}

使用枚举作为匹配表达式

enum Color
{
    Red,
    Green,
    Blue
}

Color selected = Color.Green;

switch (selected)
{
    case Color.Red:
        Console.WriteLine("红色");
        break;
    case Color.Green:
        Console.WriteLine("绿色");
        break;
    default:
        Console.WriteLine("未知颜色");
        break;
}

switch 表达式(C# 8+)

string result = selected switch
{
    Color.Red => "红色",
    Color.Green => "绿色",
    _ => "未知颜色"
};

Console.WriteLine(result);

✅ 四、3. whiledo...while

while 简单循环

int count = 1;
while (count <= 5)
{
    Console.WriteLine($"计数:{count}");
    count++;
}

do...while 至少执行一次

int num;
do
{
    Console.Write("请输入一个数字(输入0退出):");
    num = int.Parse(Console.ReadLine());
} while (num != 0);

✅ 五、4. for 循环

简单循环输出 1~10

for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}

for 遍历数组

int[] numbers = { 10, 20, 30, 40 };

for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine($"索引 {i} 的值为:{numbers[i]}");
}

嵌套 for 循环(打印乘法表)

for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write($"{j}*{i}={i * j}\t");
    }
    Console.WriteLine();
}

✅ 六、5. foreach 遍历集合

string[] names = { "Alice", "Bob", "Charlie" };

foreach (string name in names)
{
    Console.WriteLine(name);
}

✅ 七、6. continue 跳过当前迭代

for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
        continue;

    Console.WriteLine(i); // 只输出奇数
}

🧠 八、总结对比表

控制流结构是否支持条件判断是否支持多分支是否可重复执行
if / else
switch
while
do...while
for
foreach

📦 九、完整练习项目模板(Program.cs)

using System;

class Program
{
    enum WeekDay
    {
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday
    }

    static void Main()
    {
        Console.WriteLine("=== C# 控制流综合练习 ===\n");

        // if / else if / else
        int score = 78;
        if (score >= 90) Console.WriteLine("优秀");
        else if (score >= 60) Console.WriteLine("及格");
        else Console.WriteLine("不及格");

        // switch
        WeekDay today = WeekDay.Monday;
        string dayName = today switch
        {
            WeekDay.Saturday or WeekDay.Sunday => "周末",
            _ => "工作日"
        };
        Console.WriteLine($"今天是:{dayName}");

        // while
        int count = 1;
        while (count <= 5)
        {
            Console.WriteLine($"计数:{count}");
            count++;
        }

        // do while
        int num;
        do
        {
            Console.Write("请输入一个数字(输入0退出):");
            num = int.Parse(Console.ReadLine());
        } while (num != 0);

        // for 循环数组
        int[] nums = { 10, 20, 30 };
        for (int i = 0; i < nums.Length; i++)
        {
            Console.WriteLine($"索引 {i} 的值为:{nums[i]}");
        }

        // foreach
        string[] names = { "Tom", "Jerry" };
        foreach (string name in names)
        {
            Console.WriteLine(name);
        }

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

        Console.WriteLine("\n按任意键退出...");
        Console.ReadKey();
    }
}

🎯 十、运行效果(模拟)

=== C# 控制流综合练习 ===

及格
今天是:工作日
计数:1
计数:2
...
请输入一个数字(输入0退出):5
请输入一个数字(输入0退出):0
索引 0 的值为:10
索引 1 的值为:20
索引 2 的值为:30
Tom
Jerry
1
3
5
7
9

按任意键退出...

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

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

相关文章

永久免费,特殊版本!

随着大家审美的不断提升&#xff0c;无论是社交平台的日常分享还是特定场景的图像展示&#xff0c;人们对图像质量的要求都日益严苛。为了呈现更完美的视觉效果&#xff0c;许多小伙伴都会对原始图像进行精细化的后期处理&#xff0c;其中复杂背景抠图、光影调整、色彩校正等专…

Canva 推出自有应用生成器以与 Bolt 和 Lovable 竞争

AI 目前是一个巨大的市场,每个人都想从中分一杯羹。 即使是 Canva,这个以拖放图形设计而闻名的流行设计平台,也在其 Canva Create 2025 活动中发布了自己版本的代码生成器,加入了 AI 竞赛。 但为什么一个以设计为先的平台会提供代码生成工具呢? 乍看之下,这似乎有些不…

Matrix-Game:键鼠实时控制、实时生成的游戏生成模型(论文代码详细解读)

1.简介 本文介绍了一种名为Matrix-Game的交互式世界基础模型&#xff0c;专门用于可控的游戏世界生成。 Matrix-Game通过一个两阶段的训练流程来实现&#xff1a;首先进行大规模无标签预训练以理解环境&#xff0c;然后进行动作标记训练以生成交互式视频。为此&#xff0c;研…

MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码

新下载下来的MySQL&#xff0c;由于没有root密码&#xff0c;&#xff08;1&#xff09;所以如果我们希望登陆mysql&#xff0c;得给mysql的root账户设置密码&#xff0c;或者另一方面来说&#xff0c;&#xff08;2&#xff09;未来如果你忘记root密码了&#xff0c;也能通过这…

机器学习笔记2

5 TfidfVectorizer TF-IDF文本特征词的重要程度特征提取 (1) 算法 词频(Term Frequency, TF), 表示一个词在当前篇文章中的重要性 逆文档频率(Inverse Document Frequency, IDF), 反映了词在整个文档集合中的稀有程度 (2) API sklearn.feature_extraction.text.TfidfVector…

重排序模型解读 mxbai-rerank-base-v2 强大的重排序模型

mxbai-rerank-base-v2 强大的重排序模型 模型介绍benchmark综合评价安装 模型介绍 mxbai-rerank-base-v2 是 Mixedbread 提供的一个强大的重排序模型&#xff0c;旨在提高搜索相关性。该模型支持多语言&#xff0c;特别是在英语和中文方面表现出色。它还支持代码和 SQL 排序&a…

期望是什么:(无数次的均值,结合概率)21/6=3.5

https://seeing-theory.brown.edu/basic-probability/cn.html 期望是什么:(无数次的均值,结合概率)21/6=3.5 一、期望(数学概念) 在概率论和统计学中,**期望(Expectation)**是一个核心概念,用于描述随机变量的长期平均取值,反映随机变量取值的集中趋势。 (一…

uniapp-vue3项目中引入高德地图的天气展示

前言&#xff1a; uniapp-vue3项目中引入高德地图的天气展示 效果&#xff1a; 操作步骤&#xff1a; 1、页面上用定义我们的 当前天气信息&#xff1a;<view></view> 2、引入我们的map文件 <script setup>import amapFile from ../../libs/amap-wx.js …

lc42接雨水

1.原题 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 2.题目解析 这一题是经常被考到的一道算法题&#xff0c;其中最简单最好用的方法就是双指…

通义千问-langchain使用构建(三)

目录 序言docker 部署xinference1WSL环境docker安装2拉取镜像运行容器3使用的界面 本地跑chatchat1rag踩坑2使用的界面2.1配置个前置条件然后对话2.2rag对话 结论 序言 在前两天的基础上&#xff0c;将xinference调整为wsl环境&#xff0c;docker部署。 然后langchain chatcha…

系统漏洞扫描服务:维护网络安全的关键与服务原理?

系统漏洞扫描服务是维护网络安全的关键措施&#xff0c;能够迅速发现系统中的潜在风险&#xff0c;有效预防可能的风险和损失。面对网络攻击手段的日益复杂化&#xff0c;这一服务的重要性日益显著。 服务原理 系统漏洞扫描服务犹如一名恪尽职守的安全守护者。它运用各类扫描…

【Redis】零碎知识点(易忘 / 易错)总结回顾

一、Redis 是一种基于键值对&#xff08;key-value&#xff09;的 NoSQL 数据库 二、Redis 会将所有数据都存放在内存中&#xff0c;所以它的读写性能非常惊人 Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上&#xff0c;这样在发生类似断电或者机器故障时&#xf…

基于three.js 全景图片或视频开源库Photo Sphere Viewer

Photo Sphere Viewer 是一个基于 JavaScript 的开源库&#xff0c;专门用于在网页上展示 360 全景图片或视频。它提供了丰富的交互功能&#xff0c;允许用户通过鼠标、触摸屏或陀螺仪来浏览全景内容&#xff0c;适用于旅游、房地产、虚拟现实、教育等多个领域。 主要特点 多种…

LangPDF: Empowering Your PDFs with Intelligent Language Processing

LangPDF: Empowering Your PDFs with Intelligent Language Processing Unlock Global Communication: AI-Powered PDF Translation and Beyond In an interconnected world, seamless multilingual document management is not just an advantage—it’s a necessity. LangP…

OpenVLA (2) 机器人环境和环境数据

文章目录 [TOC](文章目录) 前言1 BridgeData V21.1 概述1.2 硬件环境 2 数据集2.1 场景与结构2.2 数据结构2.2.1 images02.2.2 obs_dict.pkl2.2.3 policy_out.pkl 3 close question3.1 英伟达环境3.2 LIBERO 环境更适合仿真3.3 4090 运行问题 前言 按照笔者之前的行业经验, 数…

代码复现5——VLMaps

项目地址 1 Setup # 拉取VLMaps仓库,成功运行后会在主目录生成文件夹vlmapsgit clone https://github.com/vlmaps/vlmaps.git#通过 conda 创建虚拟环境conda create -n vlmaps python=3.8 -yconda activate vlmaps #激活环境cd vlmaps # 切换到项目文件下bash install.ba…

Ocean: Object-aware Anchor-free Tracking

领域&#xff1a;Object tracking It aims to infer the location of an arbitrary target in a video sequence, given only its location in the first frame 问题/现象&#xff1a; Anchor-based Siamese trackers have achieved remarkable advancements in accuracy, yet…

计算机网络(1)——概述

1.计算机网络基本概念 1.1 什么是计算机网络 计算机网络的产生背景 在计算机网络出现之前&#xff0c;计算机之间都是相互独立的&#xff0c;每台计算机只能访问自身存储的数据&#xff0c;无法与其他计算机进行数据交换和资源共享。这种独立的计算机系统存在诸多局限性&#…

刘家祎双剧收官见证蜕变,诠释多面人生

近期&#xff0c;两部风格迥异的剧集迎来收官时刻&#xff0c;而青年演员刘家祎在《我家的医生》与《无尽的尽头》中的精彩演绎&#xff0c;无疑成为观众热议的焦点。从温暖治愈的医疗日常到冷峻深刻的少年救赎&#xff0c;他以极具张力的表演&#xff0c;展现出令人惊叹的可塑…

Axure制作可视化大屏动态滚动列表教程

在可视化大屏设计中&#xff0c;动态滚动列表是一种常见且实用的展示方式&#xff0c;能够有效地展示大量信息。本文将详细介绍如何使用Axure制作一个动态滚动的列表展示模块。 一、准备工作 打开Axure软件&#xff1a;确保你已经安装并打开了Axure RP软件。创建新项目&#x…