当前位置: 首页 > news >正文

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.mrgr.cn/news/60854.html

相关文章:

  • Python中的列表是什么?它们有什么用途?
  • MATLAB的PCA人脸识别系统
  • Java | Leetcode Java题解之第518题零钱兑换II
  • Golang | Leetcode Golang题解之第517题超级洗衣机
  • TSO的资料
  • 音视频入门基础:AAC专题(12)——FFmpeg源码中,解码AudioSpecificConfig的实现
  • 音视频入门基础:FLV专题(18)——Audio Tag简介
  • 哈希及其封装实现unordermap和set
  • Redis 分布式锁:原理、实现及最佳实践
  • redis详细教程(3.ZSet,Bitmap,HyperLogLog)
  • Python量化交易(五):量化择时策略
  • YOLO框架最新综述从YOLOV1-YOLOV11(2024年10月23)
  • Midjourney 3D:探索未来沉浸式体验的无限可能
  • ELF文件格式解读及其生成过程(上)
  • MyBatisPlus 只更新指定字段
  • argparse的基本用法
  • leetcode hot100【LeetCode 394.字符串解码】java实现
  • Vue脚手架
  • shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
  • 前端存储IndexedDB存储方式实战案例