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();
}