C#笔记2

for循环的语法结构:
for(参数初始化;条件判断;更新循环变量)
{
    循环体被执行
}

while循环的语法结构:
while(循环条件)
{
    //循环操作
}
注意:
while循环必须有退出条件,即必须能够改变循环条件
先判断再执行

do while循环:
do
{
    //循环操作
}while(循环条件);
先执行再判断

示例:
 static void Test5()
 {
     int i;
     do
     {
         Console.WriteLine("输入你现在的字");
         i = int.Parse(Console.ReadLine());
         if (i < 120)
         {
             Console.WriteLine("小伙子不行啊");
         }
         else
         {
             Console.WriteLine("小伙子可以啊");
         }
     } while (i < 120);
     Console.WriteLine("继续加油");
 }

while循环和do-while循环的区别:
1、语法不同
2、执行次序不同
3、初始情况不满足循环条件时,while循环一次都不会执行,do-while循环不管任何情况都至少执行一次

break循环跳出:
跳出循环体执行循环后面的语句。


continue循环继续下一个:
循环体中剩余的语句会被跳过,执行下一次循环。

对比break和continue:
1、使用场景
     break可以用于switch结构和循环结构中
     continue只能用于循环结构中
2、作用
    break语句终止某个循环,程序跳转到循环外的下一条语句
    continue跳出本次循环,进入下一次循环

debug调试方法:
打断点
   预估程序可能哪里出问题!就在哪里打断点!如果你不知道,或者无法准确的判断,那可以在程序的入口处打断点!
局部变量在程序运行时的调试--》窗口


字符串处理:
1、字符串查找
    IndexOf()方法
2、判断字符串长度
    Length方法
3、截取字符串
       Substring()方法
4、比较字符串是否相等
      Equals()方法
5、使用占位符完成字符串的拼接\输出
      Format()方法
6、各种格式化定义字符
   Format()方法
   C 货币格式
      D 十进制格式
      F 小数点后的位数固定
      N 用逗号隔开的数字
      P 百分比计数法
      X  十六进制格式
7、空字符串的使用方法
//分配一个存储空间,并存入“”
string name = "";
Console.WriteLine(name.Length);
//和“”一样,长度为0
string age = string.Empty;
Console.WriteLine(age.Length);
//仅仅是变量的声明,对象不存在会报错
string height = null;
string white;
//Console.WriteLine(height.Length);
8、其他常用字符串处理方法
      Trim();去掉前后多余的空格
      ToUpper();转换成大写
      ToLower();转换成小写
      LastIndexOf(string value);找到最后一个匹配项所在的索引(位置)

字符串的高效处理:
关于字符串的拼接节省内存浪费
 string name = "x";
 name += "i";
 name += "s";
 name += "h";
 name += "e";
 Console.WriteLine(name);
 Console.ReadLine();

StringBuilder类的使用:
       Append() 在结尾追加
       Insert() 在指定位置插入指定字符串
       Remove() 移除指定字符串
       
     StringBuilder name = new StringBuilder();
  //Append()在结尾追加
  name.Append("xshe");
  Console.WriteLine(name);
  //Insert()在指定位置插入指定字符串
  name.Insert(1, "ia");
  Console.WriteLine(name);
  //Remove()移除指定字符串
  name.Remove(2,1);
  Console.WriteLine(name);
  Console.ReadLine();


数组:
数组是一个变量,用来存储“相同数据类型”的“一组数据”,数组是一个对象
数组和普通变量的对比:
1、声明一个变量,就是在内存空间划出一块合适的空间(变量独立存储)
2、声明一个数组,就是在内存空间划出一串连续的空间(变量集中存储)
数组的基本要素:
1、标识符
         数组的名称
2、元素
         向数组中存放的数据
          // score = new string[] { "11", "12", "13", "14", "15" };
         //score = new string[5] { "11", "12", "13", "14", "15" };
    // score = new string[5]; score[0] = "xi";
3、类型
         元素的数据类型
4、下标
         元素的编号(索引),从0开始

foreach循环:
语法:
foreach(元素类型 变量名 in 集合或数组名)
{
    //语句
}

字符串的处理(补充):
1、使用Split()分割字符串
     参数:分割符(char型)
2、使用join()方法连接字符串
         参数1:连接符,参数2:字符串数组


变量的类型分析:
1、属于值类型(基本数据类型)的变量使用特点
   int wangScore = 90;
   int zhangScore = wangScore;  //变量zhangScore重新开辟新的内存空间,并将90复制到新空间中
      zhangScore += 5;
   //zhangScore = 95;wangScore = 90;
   //基本数据类型在传递变量值时,传递的是变量的“副本”,而不是变量本身,变量修改后相互没有影响。
2、属于引用类型(对象类型)的变量使用特点
     新变量改变了值,本质上改变的是“被引用变量”本身的值
     int[] score = { 90, 90 };//数组是引用变量
  Console.WriteLine($"修改前二人的成绩:小王:{score[0]},小张:{score[1]}");
  int[] editScore = score;//引用类型的变量在传递给新变量时,传递的是变量本身(引用/地址/指针)新变量并没有开辟新空间,它只是指向了引用变量。
  //修改小张的成绩
  editScore[1] += 5;
  Console.WriteLine($"修改后的成绩:");
  Console.WriteLine($"小王成绩{score[0]},小张成绩{score[1]}");
  Console.ReadLine();
变量类型汇总:
值类型:
  int、double等值类型
  struct:结构
  enum:枚举
引用类型
  string:字符串   string是特殊的引用类型,使用效果和值类型一样
  数组
  系统类库中的各种对象
  自定义类
认识String与string
 String是.net Framework的类(在C#IDE中不会显示蓝色)
  string是一种数据类型,映射为.net Framwork的String,是String类的别名
  使用string时编译器会把它编译成String,C#中一般都使用string
 string是关键字,不能作类、结构、枚举、字段、变量、方法、属性的名称,而String不是关键字,可以使用
 

对应代码:

 static void Main(string[] args){//Test1();//Test2();//Test3();//Test4();//Test5();//Test6();//Test7();//Test8();//Test9();//Test10();//Test11();//Test12();//Test13();//Test14();//Test15();//Test16();//Test17();//Test18();//Test19();//Test20();Test21();}static void Test1(){for (int i = 0; i < 10; i++){Console.WriteLine(i);}Console.Read();}/// <summary>/// 九九乘法表/// </summary>static void Test2(){for (int i = 1; i < 10; i++){for (int j = 1; j <= i; j++){Console.Write($"{j}*{i}={i * j}\t");}Console.WriteLine();}Console.Read();}/// <summary>/// 等腰三角形/// </summary>static void Test3(){for (int a = 1; a <= 5; a++){for (int i = 1; i <= 5 - a; i++){Console.Write(" ");}for (int j = 1; j < 2 * a; j++){Console.Write("*");}Console.Write("\n");}}/// <summary>/// while循环/// </summary>static void Test4(){Console.WriteLine("你现在多少个字?");int i = int.Parse(Console.ReadLine());while (i < 120){Console.WriteLine("小伙子还得练");Console.WriteLine("-------------------");Console.WriteLine("你现在多少个字?");i = int.Parse(Console.ReadLine());}Console.WriteLine("很不错小伙子");}/// <summary>/// do...while循环/// </summary>static void Test5(){int i;do{Console.WriteLine("输入你现在的字");i = int.Parse(Console.ReadLine());if (i < 120){Console.WriteLine("小伙子不行啊");}else{Console.WriteLine("小伙子可以啊");}} while (i < 120);Console.WriteLine("继续加油");}/// <summary>/// 字符串处理1:/// IndexOf()方法的使用,判断指定字符是否存在/// </summary>static void Test6(){//判断用户输入的邮箱是否包含"@"string email = "xishe@qq.com";int position = email.IndexOf("@");Console.WriteLine("@所在位置索引:" + position);Console.ReadLine();}/// <summary>/// 字符串处理2:/// 获取字符串长度,Length/// </summary>static void Test7(){string i = "0123456";int num = i.Length;Console.WriteLine(num);Console.ReadLine();}/// <summary>/// 字符串处理3:/// 截取字符串 Substring()方法/// </summary>static void Test8(){//字符串截取string i = "012345";string j = i.Substring(1, 3);Console.WriteLine(j);Console.ReadLine();}/// <summary>/// 字符串处理4:/// 比较字符串是否相等 Equals()方法/// </summary>static void Test9(){string i = "1";string j = "11";string n = "1";Console.WriteLine(i.Equals(j));Console.WriteLine(i.Equals(n));Console.ReadLine();}/// <summary>/// 字符串处理5:/// 字符串格式化输出 Format()方法/// </summary>static void Test10(){string name = "昔舍";int age = 21;string n = string.Format("我的名字是{0},今年{1}岁", name, age);Console.WriteLine("我的名字是{0},今年{1}岁", name, age);Console.WriteLine($"我的名字是{name},今年{age}岁");Console.WriteLine(n);Console.ReadLine();}/// <summary>/// 字符串处理6:/// 字符串格式化定义 Format()方法/// </summary>static void Test11(){//货币string moneyTotal = string.Format("{0:C3}", 5000);Console.WriteLine(moneyTotal);Console.ReadLine();}/// <summary>/// 字符串处理7:/// 空字符串的使用方法/// </summary>static void Test12(){//分配一个存储空间,并存入“”string name = "";Console.WriteLine(name.Length);//和“”一样,长度为0string age = string.Empty;Console.WriteLine(age.Length);//仅仅是变量的声明,对象不存在会报错string height = null;string white;//Console.WriteLine(height.Length);Console.Read();}/// <summary>/// 字符串处理8:/// 其他常用字符串处理方法///Trim();去掉前后多余的空格///ToUpper();转换成大写/// ToLower(); 转换成小写/// LastIndexOf(string value); 找到最后一个匹配项所在的索引(位置)/// </summary>static void Test13(){//Trim() 去掉前后多余的空格string name = " 昔舍 ";Console.WriteLine(name);//ToUpper() 转换成大写string addressIn = "www.laction.com";Console.WriteLine(addressIn.ToUpper());// ToLower() 转换成小写string Addressin = "WWW.lanction.COM";Console.WriteLine(Addressin.ToLower());//LastIndexOf() 找到最后一个匹配项所在的索引(位置)string email = "xishe@qq.com";Console.WriteLine(email.LastIndexOf("q"));Console.Read();}/// <summary>/// 字符串的高效处理/// </summary>static void Test14(){//关于字符串的拼接string name = "x";name += "i";name += "s";name += "h";name += "e";Console.WriteLine(name);Console.ReadLine();}/// <summary>/// StringBuilder类的使用/// </summary>static void Test15(){StringBuilder name = new StringBuilder();//Append()在结尾追加name.Append("xshe");Console.WriteLine(name);//Insert()在指定位置插入指定字符串name.Insert(1, "ia");Console.WriteLine(name);//Remove()移除指定字符串name.Remove(2,1);Console.WriteLine(name);Console.ReadLine();}/// <summary>/// 数组/// </summary>static void Test16(){//1、声明数组string[] score;//2、分配空间score = new string[5];//3、赋值score[0] = "xi";//4、处理数据score[0] = score[0] + "she";Console.WriteLine(score[0]);Console.ReadLine() ;}/// <summary>/// foreach循环/// </summary>static void Test17(){string[] score;score = new string[5] { "11", "12", "13", "14", "15" };foreach(string i in score){Console.WriteLine(i);}Console.ReadLine() ;}/// <summary>/// Split()分割线/// Join()连接字符串/// </summary>static void Test18(){//分割符string name = "x i";string[] xi = name.Split();Console.WriteLine(xi.Length);//使用join()连接字符串string yi = string.Join("",xi);Console.WriteLine(yi);Console.ReadLine() ;}/// <summary>/// 值类型变量/// </summary>static void Test19(){int wangScore = 90;int zhangScore = wangScore;//变量zhangScore重新开辟新的内存空间,并将90复制到新空间中zhangScore += 5;Console.WriteLine(zhangScore);//基本数据类型在传递变量值时,传递的是变量的”副本“,而不是变量本身,变量修改后相互没有影响。Console.WriteLine(wangScore);Console.ReadLine();}/// <summary>/// 引用类型(对象类型)/// 引用类型的变量在传递给新变量时,传递的是变量本身(引用/地址/指针)新变量并没有开辟新空间,它只是指向了引用变量。/// </summary>static void Test20(){int[] score = { 90, 90 };Console.WriteLine($"修改前二人的成绩:小王:{score[0]},小张:{score[1]}");int[] editScore = score;//修改小张的成绩editScore[1] += 5;Console.WriteLine($"修改后的成绩:");Console.WriteLine($"小王成绩{score[0]},小张成绩{score[1]}");Console.ReadLine();}/// <summary>/// 字符串--引用类型变量/// </summary>static void Test21(){string teacherName = "常老师";string coure = teacherName;  //string是特殊的引用类型,使用效果和值类型一样coure = "张老师";Console.WriteLine($"{teacherName},{coure}");Console.Read();}

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

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

相关文章

大数据-193 Apache Tez - DAG 作业计算框架 核心解释 工作原理 配置集成

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Anki插件Export deck to html的改造

在Anki中进行复习时&#xff0c;每次只能打开一条笔记。如果积累了很多笔记&#xff0c;有时候会有将它们集中输出成一个pdf进行阅读的想法。Anki插件Export deck to html&#xff08;安装ID&#xff1a;1897277426&#xff09;就有这个功能。但是&#xff0c;这个插件目前存在…

岛津分子泵软件TMP系列分子泵EI-D系列控制电源 EI Monitor(232和485控制)

岛津分子泵软件TMP系列分子泵EI-D系列控制电源 EI Monitor(232和485控制)

探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作

unity是实时3D互动内容创作和运营平台&#xff0c;包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助Unity将创意变成现实。提供一整套完善的软件解决方案&#xff0c;可用于创作、运营和变现任何实时互动的2D和3D内容&#xff0c;支持平台包括手机、…

图为大模型一体机新探索,赋能智能家居行业

在21世纪的今天&#xff0c;科技的飞速进步正以前所未有的速度重塑着我们的生活方式。从智能手机到物联网&#xff0c;从大数据到人工智能&#xff0c;每一项技术创新都在为人类带来前所未有的便利与效率。其中&#xff0c;图为AI大模型一体机作为人工智能领域的最新成果&#…

DiskGenius一键修复磁盘损坏

下午外接磁盘和U盘都出现扇区损坏&#xff0c;估计就是在开着电脑&#xff0c;可能是电脑运行的软件还在对磁盘进行读写&#xff0c;不小心按到笔记本关机键&#xff0c;重新开机读写磁盘分区变得异常卡顿&#xff0c;估摸就是这个原因导致扇区损坏。在进行读写时&#xff0c;整…

深度学习:YOLO v1网络架构、损失值及NMS极大值抑制

引言 随着深度学习的发展&#xff0c;物体检测&#xff08;Object Detection&#xff09;成为计算机视觉领域的一项重要任务。传统的物体检测方法往往依赖于手工设计的特征和滑窗搜索策略&#xff0c;效率低下且效果有限。近年来&#xff0c;基于深度学习的方法&#xff0c;尤…

leetcode-63-不同陆路径II

题解&#xff1a; 1、设dp[i][j]为到达(i,j)点的路径。当grid[i][j]1时,dp[i][j]0;否则dp[i][j]为到达(i-1,j)的最多路径与到达(i,j-1)的最多路径之和。当(i,j)位于第一行时&#xff0c;dp[i][j]dp[i][j-1]。当(i,j)位于第一列时&#xff0c;dp[i][j]dp[i-1][j]。 2、初始化M…

MATLAB锂电概率分布模型

&#x1f3af;要点 概率分布等效电路模型结合了路径相关速率能力及状态估计中滞后效应。纠正了充电状态中时间误差累积及避免开路电压中电压滞后现象。使用电流方向和电池容量相关函数描述开路电压&#xff0c;并使用微分方程描述电压滞后现象。模型结构基于一级相变的材料机制…

新华三H3CNE网络工程师认证—OSPF路由协议

OSPF是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的IGP协议之一。本博客将对OSPF路由协议进行总结。 OSPF目前针对IPv4协议使用的是OSPFVersion2(RFC2328)&#xff1b; 针对IPv6协议使用OSPFVersion3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Versi…

监督学习之逻辑回归

逻辑回归&#xff08;Logistic Regression&#xff09; 逻辑回归是一种用于二分类&#xff08;binary classification&#xff09;问题的统计模型。尽管其名称中有“回归”二字&#xff0c;但逻辑回归实际上用于分类任务。它的核心思想是通过将线性回归的输出映射到一个概率值…

【MATLAB源码-第193期】基于matlab的网络覆盖率NOA优化算法仿真对比VFINOA,VFPSO,VFNGO,VFWOA等算法。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 NOA&#xff08;Network Optimization Algorithm&#xff0c;网络优化算法&#xff09;是一个针对网络覆盖率优化的算法&#xff0c;它主要通过优化网络中节点的分布和配置来提高网络的整体覆盖性能。网络覆盖率是衡量一个无…

基于STM32G0的USB PD协议学习(3)

0、前言 STM32这个平台资源确实很不错&#xff0c;但是里面的PD代码是一个lib库文件&#xff0c;没有开源。可以做来玩玩&#xff0c;但是如果要满足USB-IF认证需求的话&#xff0c;谨慎&#xff01;&#xff01;&#xff01; 这段时间较为繁忙&#xff0c;断更有点严重... …

植物健康,Spring Boot来保障

5系统详细实现 5.1 系统首页 植物健康系统需要登录才可以看到首页。具体界面的展示如图5.1所示。 图5.1 系统首页界面 5.2 咨询专家 可以在咨询专家栏目发布消息。具体界面如图5.2所示。 图5.2 咨询专家界面 5.3 普通植物检查登记 普通员工可以对普通植物检查登记信息进行添…

Linux之权限(2)

权限&#xff08;2&#xff09; 操作&#xff1a;有VS没有 只有文件的拥有者或者root&#xff0c;能修改自己的权限 Linux下能执行真的是一个可执行文件可执行权限 user,group,other和我自己进行身份对比&#xff0c;依次只对比一次 8进制数值表示方法 chmod ax /home/abc.…

基于vue、VantUI、django的程序设计

首先构建vue项目&#xff0c;构建项目点这里 安装 npm install axios axios简介 Axios 是一个基于 promise 的 HTTP 库&#xff0c;用于发起请求和接收响应&#xff0c;实现异步操作 基本使用 axios对象 请求响应拦截 在utils文件夹里新建ajax.js 创建一个axios对象并…

云智慧完成华为原生鸿蒙系统的适配, 透视宝 APM 为用户体验保驾护航

2024 年 10 月 22 日&#xff0c;首个国产移动操作系统 —— 华为原生鸿蒙操作系统 HarmonyOS NEXT 正式面世&#xff0c;成为继 iOS 和 Android 后的全球第三大移动操作系统。HarmonyOS NEXT&#xff0c;从系统内核、数据库根基&#xff0c;到编程语言创新、AI&#xff08;人工…

【WebGis开发 - Cesium】三维可视化项目教程---图层管理拓展图层透明度控制

目录 引言一、为什么要开发图层透明度控制功能二、开发思路整理1. cesium图层api查询1.1 imageryLayer 透明度1.2 primitive 透明度 三、代码编写1. 修改原有图层管理代码2. 新增页面结构3. 编写图层透明度控制方法 四、总结 引言 本教程主要是围绕Cesium这一开源三维框架开展的…

如何通过sip信令以及抓包文件分析媒体发到哪个地方

前言 问题描述&#xff1a;A的媒体没转发到B&#xff0c;B只能听到回铃音&#xff0c;没有A的说话声音&#xff0c;并且fs这边按正常的信令发送了. 分析流程 分析早期媒体发送到哪一个IP 10.19.0.1发送了一个请求给10.19.0.157这个IP&#xff0c;然而这里的SDP媒体地址&am…

react 总结+复习+应用加深

文章目录 一、React生命周期1. 挂载阶段&#xff08;Mounting&#xff09;补充2. 更新阶段&#xff08;Updating&#xff09;补充 static getDerivedStateFromProps 更新阶段应用补充 getSnapshotBeforeUpdate3. 卸载阶段&#xff08;Unmounting&#xff09; 二、React组件间的…