005集——运算符和循环——C#学习笔记

news2024/11/24 19:36:13

C# 提供了许多运算符。 其中许多都受到内置类型的支持,可用于对这些类型的值执行基本操作。 这些运算符包括以下组:

  • 算术运算符,将对数值操作数执行算术运算
  • 比较运算符,将比较数值操作数
  • 布尔逻辑运算符,将对 bool 操作数执行逻辑运算
  • 位运算符和移位运算符,将对整数类型的操作数执行位运算或移位运算
  • 相等运算符,将检查其操作数是否相等

通常可以重载这些运算符,也就是说,可以为用户定义类型的操作数指定运算符行为。

最简单的 C# 表达式是文本(例如整数和实数)和变量名称。 可以使用运算符将它们组合成复杂的表达式。 运算符优先级和结合性决定了表达式中操作的执行顺序。 可以使用括号更改由运算符优先级和结合性决定的计算顺序。

  • c = a++: 先将 a 赋值给 c,再对 a 进行自增运算。
  • c = ++a: 先将 a 进行自增运算,再将 a 赋值给 c 。
  • c = a--: 先将 a 赋值给 c,再对 a 进行自减运算。
  • c = --a: 先将 a 进行自减运算,再将 a 赋值给 c 。
  • 口诀:看变量a的左边是什么,左边是变量则先赋值变量,左边是+-号,则先+-
  • ,提供创建格式化字符串的便利语法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
   class Program
    {
        
        static void  Main()
  //C# 程序的入口点是 Main 而不是 main。Main 方法必须是静态的(static),并且它的首字母必须大写。
        { 
        var r = 2.3;
        var message = $"The area of a circle with radius {r} is {Math.PI * r * r:F3}.";
            //:F3 表示要将数值格式化为固定点数(fixed-point number),并保留小数点后三位。
            //同理F8保留8位小数
            Console.WriteLine(message);
            Console.ReadKey();
        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
   class Program
    {
      static void Main()
       /*static 关键字用于声明 Main 方法是静态的,
        * 这意味着它属于类本身而不是类的任何特定实例。在 C# 程序中,
        * 程序的入口点(即程序开始执行的地方)必须是一个静态的 Main 方法。
        * 因此,你不能简单地将 static 关键字从 Main 方法的声明中去掉。*/
        {
        int[] numbers = { 2, 3, 4, 5 };
            //将数组里的每个数变为自身平方并且赋值给新变量,Enumerable.Select 方法
            var squaredNumbers = numbers.Select(n => n * n);
            // 遍历并打印结果  
            foreach (var num in numbers)
            {
                Console.WriteLine($"平方前:\n{num}");
            }
            Console.WriteLine("平方后:");
            foreach (var num in squaredNumbers)
            {
                Console.WriteLine(num);
            }
            Console.ReadKey();
        /*
        
         */
        }
    }
}

逻辑异或运算符 ^

^ 运算符计算操作数的逻辑异或(亦称为“逻辑 XOR”)。 如果 x 计算结果为 true 且 y 计算结果为 false,或者 x 计算结果为 false 且 y 计算结果为 true,那么 x ^ y 的结果为 true。 否则,结果为 false。 也就是说,对于 bool 操作数,^ 运算符的计算结果与不等运算符 != 相同。

即:ture 不等于 true ,结果假

true 不等于 假 ,结果真

Console.WriteLine(true ^ true);    // output: False
Console.WriteLine(true ^ false);   // output: True
Console.WriteLine(false ^ true);   // output: True
Console.WriteLine(false ^ false);  // output: False

对于整型数值类型的操作数,^ 运算符计算其操作数的位逻辑异或。

可以这么理解,^两边的人是死敌,当他们意见不同时才正常,返回真;他们意见相同时,见鬼了,肯定假的,返回假^_^

if 语句

if 语句可采用以下两种形式中的任一种:

  • 包含 else 部分的 if 语句根据布尔表达式的值选择两个语句中的一个来执行,如以下示例所示:

 switch语句

using System;

namespace SwitchExample
{
    class Program
    {
        static void Main(string[] args)
        {
            int 数字 = 3; // 假设这表示星期三  

            switch (数字)
            {
                case  1:
                    Console.WriteLine("Monday");
                    Console.ReadKey();
                    break;
                case 2:
                    Console.WriteLine("Tuesday");
                    Console.ReadKey();
                    break;
                case 3:
                    Console.WriteLine("星期三");
                    Console.ReadKey();
                    break;
                case 4:
                    Console.WriteLine("Thursday");
                    Console.ReadKey();
                    break;
                case 5:
                    Console.WriteLine("Friday");
                    Console.ReadKey();
                    break;
                case 6:
                    Console.WriteLine("Saturday");
                    Console.ReadKey();
                    break;
                case 7:
                    Console.WriteLine("Sunday");
                    Console.ReadKey();
                    break;
                default:
                    Console.WriteLine("无效数字");
                    Console.ReadKey();
                    break;
            }
        }
    }
}

?:运算符
我们已经在前面的章节中讲解了 条件运算符 ? :,可以用来替代 if...else 语句。它的一般形式如下:

Exp1 ? Exp2 : Exp3;
 其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。

? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。

 简化一下

是否是真?真执行这个:假执行这个

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

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

相关文章

基于医院临床数据中心而建立的ADR药品智能监测上报系统,源码支持二次开发

ADR监测上报系统是基于医院临床数据中心而建立,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能。 系统自动提取不良反应报告数据,主动实时监测临床发生的不良反应,第一时间反馈到ADR监测组,及时…

邀请函 I 松下信息和望繁信科技邀您参加「数智时代下大数据应用的“道”与“术”」闭门会议

在数字化浪潮席卷全球的今天,大数据与智能化的结合成为企业成功的关键。为了深入探讨这一重要议题,松下信息系统(上海)有限公司(简称“松下信息”)与上海望繁信科技有限公司(简称“望繁信科技”…

2024年最新AI算力厂商排名!

随着人工智能技术的飞速发展,AI算力已成为衡量一个国家或企业在AI领域竞争力的重要指标。2024年,全球AI算力领域再度迎来新的突破与变革,不仅体现在技术创新的深度和广度上,更在应用场景和市场价值上展现出巨大的潜力。 众厂商排名…

扩展01:企业级Nginx+Keepalived双主架构实战

NginxKeepalived主备架构总是会有一台服务器处于空闲状态,这样会造成资源的浪费,所以为了能够将两台服务器都利用起来,我们需要借助NginxKeepalived双主架构来实现。即是对外两个VIP地址,同时接收请求。 一:Nginxkeep…

生成订单幂等性(防止订单重复提交)

订单唯一性(防止重复下单)方案 重复下单产生原因: 客户端原因: 比如下单的按键在点按之后,在没有收到服务器请求之前,按键的状态没有设为已禁用状态,还可以被按。又或者,在触摸屏下,用户手指…

15秒完成作文自动批阅!璞公英与恩施三中正式签约试点,AI 大模型自动批阅+精准教学助力学校教育升级!

在国家大力推动教育数字化战略行动的浪潮中,通过科技创新赋能教育,促进教育公平与质量双提升的重要签约仪式,于恩施市第三高级中学隆重举行。一直以来,恩施市第三高级中学积极寻求创新与突破,引入璞公英的先进教育技术…

MyBatis动态SQL标签2

4.choose (when, otherwise)标签是使用举例 类似switch...case,从上到下匹配,找到匹配的条件,就结束匹配其他的! 5.set标签是使用举例 set这个标签是用在更新操作上的 set标签代替sql中的set关键字,可以把set语句后多…

DC-8靶机渗透测试

DC-8靶机 文章目录 DC-8靶机信息收集web渗透获取权限权限提升靶机总结 信息收集 1.nmap扫描出主机IP为192.168.78.156 开放80和22端口,没扫出来什么漏洞,但是发现robots.txt文件,给出了后台登录地址/usr/login web渗透 1.登陆到主页发现是…

Java有哪些数据类型?

Java有哪些数据类型 1. 基本数据类型 2. 引用数据类型 3. 总结 🎈边走、边悟🎈迟早会好 Java 中的数据类型分为两大类:基本数据类型(primitive types)和引用数据类型(reference types)。 …

代发考生战报:8月6号 西安 ,HCIE存储H13-629考试通过

代发考生战报:8月6号 西安 ,HCIE存储H13-629考试通过,目前这个考试变题了,我找客服买的包过服务,有老师指导,考试通过了,里面的新题我看了,我是一点也不会,自己考的还是不…

Java代码混淆加密之Xjar

使用背景 代码安全性需求:在交付给客户或第三方时,保护源代码不被泄露或反编译是许多企业的核心需求。尤其是在竞争激烈的市场中,代码泄露可能导致严重的经济损失。 传统工具的局限性:虽然有很多混淆和加密工具,比如 …

【学习笔记】用线段树维护区间计数问题

前言 简单的区间计数问题可能直接推式子就行了。 但有些问题必须要数据结构维护。线段树就是一个比较好的处理区间的数据结构。 Gym102222L 思路 满足条件的区间特征: max ⁡ { a i } − min ⁡ { a i } 1 − c n t 0 \max\{a_i\}-\min\{a_i\}1-cnt0 max{ai​}…

uniapp离线打包热更新失败-AndroidStudio离线打包apk后无法下载打开-热更新失败-plus.runtime.install失败

效果图 仅安卓 前言 1.plus.runtime.install一直fail(20240808), uni.openDocument可以打开本地apk文件 2.权限问题需小心 跑通前提 1.先确定apk地址有效,浏览器中手动下载可安装 2.确保已添加离线打包AndroidStudio的“android.permission.INSTALL_PACKAGES”权…

初识自然语言处理NLP

文章目录 1、简介2、自然语言处理的发展简史3、语言学理论句法学(Syntax)语义学(Semantics)语用学(Pragmatics)形态学(Morphology) 4、统计与机器学习方法n-gram 模型隐马尔可夫模型…

JNPF快速开发平台赋能数字办公方式转变

随着信息技术的飞速发展,数字化转型已成为各行各业提升效率、优化流程的重要手段。JNPF快速开发平台正是在这样的背景下应运而生,它通过简化开发流程,使得非技术人员也能参与到应用的构建中来,从而加速了数字办公方式的转变。 数字…

解决r2dbc连mysql时timestamp字段的时区问题

现象: 在两个mysql库用相同SQL都建了某表,都有created_at字段: created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, 。但是在往此表insert记录时,B库的created_at字段比当前时间慢了8个小时,而A…

MySQL学习(19):锁

1.什么是锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,数据是供许多用户共享的资源,数据库必须保证数据并发访问的一致性、有效性,这就要靠锁来协调实现。 MySOL中的锁,分为以下三类: &am…

深度学习基础 - 向量投影

深度学习基础 - 向量投影 flyfish 给定两个向量 a \mathbf{a} a 和 b \mathbf{b} b,我们想要计算 a \mathbf{a} a 在 b \mathbf{b} b 上的投影。 点乘 (Dot Product) 点乘是一个标量,表示两个向量在相同方向上的程度。公式为: a ⋅ b …

行为验证码热门行业解决方案

行为式验证码是一种较为流行的验证码。从字面来理解,就是通过用户的操作行为来完成验证,而无需去读懂扭曲的图片文字,以下是常见的案例。 ​​热门行业解决方案 教育解决方案 教育资源不断线上化,使得违法违规内容风险不断提高&…

最近在西安召开的学术会议:EI检索超快,信息系统与计算技术领域!

第十二届信息系统与计算技术国际会议(ISCTech 2024)将于2024年11月8日-11月11日在中国西安盛大举行,由长沙理工大学主办,同济大学、西北工业大学联合协办。会议聚焦信息系统与计算技术等相关研究领域,广泛邀请国内外知…