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);
     //和“”一样,长度为0
     string 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();
 }

上一篇:Numpy 1.数据类型


下一篇:第三方登录实现(微博、微信、QQ详细教程)-微博登录