1.字符读取
Console.WriteLine(); 默认读取到的是字符串 Convert.ToInt32 万能转换,转换为整数 Convert.ToInt32(Console.ReadLine()); 数字类型 Console.Read(); 返回的是int整数
//假设有个隧道,隧道以字符 ‘#’ 结束,挖矿的过程中,会遇到钻⽯ ‘*’ 和美⾦ ‘1’ ~ ‘9’ ,让矿⼯⼩六挖到隧道的尽头,假设每个钻⽯价值500美⾦,统计⼩六挖到了价值多少美⾦的收获?
char b;
int sum = 0;
do
{
b = (char)Console.Read();
if (b >= '0' && b <= '9')
{
int num = b - '0';
sum += num;
}
else if (b == '*')
{
sum += 500;
}
} while (b != '#');
Console.WriteLine(sum);
2.循环中的continue
continue; 终止当前循环进入下次循环 break; 终止循环,不再执行
// 取1-100的奇数
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
Console.WriteLine(i);
}
}
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
{
continue; // 终止当前循环进入下次循环
}
Console.WriteLine(i);
}
3.循环嵌套
循环里面套循环,就是循环嵌套.特点:外层循环一次,内层循环循环全部
// 输出4行*每行10个
for (int i = 0; i < 4; i++) // 控制行
{
for (int j = 0; j < 10; j++) // 控制个数
{
Console.Write("*");
}
Console.WriteLine();
}
// 输入两个整数n和m,输出n行m列的*阵
int n = Convert.ToInt32(Console.ReadLine());
int m = Convert.ToInt32(Console.ReadLine());
for (int i = 0;i < n; i++)
{
for(int j = 0;j < m; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
4.随机猜数字
随机数的生成 Random Random random = new Random(); 随机数是伪随机,利用算法计算出来的,真正的随机数是随机出来的,不带算法的,无法预测的的,但是伪随机我们可以直接使用,再视觉上形成一个随机数.
// 随机数,随机出来的数字进行比较,让玩家猜数字,如果猜的数字⽐随机数⼩,输出猜⼩了,如果猜的数字⽐随机数⼤,输出猜⼤了,猜中的话,输出猜中了,并结束游戏,没有猜中的话,就让玩家⼀直猜。
Random random = new Random();
int num = random.Next(1,101);
while (ture)
{
Console.WriteLine("请输入1-100之间的数字");
int num1 =Convert.ToInt32(Console.ReadLine());
if (num1 > num)
{
Console.WriteLine("你猜的太大了");
}
else if (num1 < num)
{
Console.WriteLine("你猜的太小了");
}
else
{
Console.WriteLine("哟,竟然猜对了");
break;
}
}
5.数组
数组 Array 数组声明,数组声明的时候也要注意类型 声明了一个int整数类型的数组,只能放整数类型的数据,数据与数据之间用,号隔开
int[] ages = { 18, 25, 3, 50, 880, 95 , 10 ,850};
如何访问数组中的数据,可以通过数组名加上下标(索引)进行访问 数组的数据中每一个数据都有一个下标(索引),注意:是从0开始的依次递增
注意:不能访问索引不存在的数据,会报错,例如超出索引
Console.WriteLine(ages[5]);
如何更改数组中的某个数据? 通过数组名加上下标(索引)进行更改
ages[4] = 25;
Console.WriteLine(ages[4]);
数组的创建方式
// 1.直接书写,创建,只是声明了一个数组,并没有添加数据,也不知道数组的长度.注意:这种方式创建的数组声明与赋值要在同一行完成.
int[] age;
// 2.通过new关键字创建一个数组,[10]代表数组长度,创建了一个长度为10的数组
int[] age2 = new int[10];
// 3.通过new创建,后面更上{},添加数组中的数据,明确了数组中的数据,不指定数组长度,可以有任意个数据
int[] age3 = new int[] {1,2,3,4,5,6,7,8,9,10};
// 4.通过new创建,[4]指定数组长度,数组中的数据个数要与长度相对于
int[] age4 = new int[4] { 1,2,3,4};
注意:不能访问索引不存在的值,索引是从0开始的,数组的长度是从1开始的
如何获取一个数组的长度:Console.WriteLine(ages.Length);
遍历数组
for (int i = 0; i < ages.Length; i++)
{
Console.WriteLine(ages[i]);
}
// foreach ages是要遍历的数组,item是数组中的每一项数据
foreach (int item in ages)
{
Console.WriteLine(item);
}
倒序遍历数组的每一项数据
for (int i = ages.Length-1; i >= 0 ; i--)
{
Console.WriteLine(ages[i]);
}
// IndexOf 检测数组中是否包含某个数据,如果有就返回索引,如果没有就返回-1,只能查到第一个
Console.WriteLine(Array.IndexOf(ages, 80));
// LastIndexOf 查找指定数组中的最后一次出现的位置,如果有返回索引,如果没有返回-1
Console.WriteLine(Array.LastIndexOf(ages,80));
// Reverse 将数组中数据颠倒顺序,反转
Array.Reverse(ages);
foreach (int item in ages)
{
Console.WriteLine(item);
}
// Clear 清除
Array.Clear(ages); // 只传入一个数组为参数,会将整个数组的数据清除掉
Array.Clear(ages,2,5); // 三个参数值,1.代表数组,2.代表从那个索引开始清除,3.清除几个数据.(包含开始的位置)
foreach (int item in ages)
{
Console.WriteLine(item);
}
// GetValue 获取数组中指定位置的数据
Console.WriteLine(ages.GetValue(5));
// Array.Sort() 排序
Array.Sort(ages);
foreach (int item in ages)
{
Console.WriteLine(item);
}
6.字符串
// string 类型 String 类
// 字符串两边使用双引号包裹的,+在字符串中是拼接字符串
string str = " sFDJL j66hf" + "s12AD FDkh ";
// 如何获取字符串的长度 Length
int len = str.Length;
Console.WriteLine(len);
// 如何获取字符串中的每一个字符
for (int i = 0; i < str.Length; i++)
{
Console.WriteLine(str[i]);
}
foreach (char item in str)
{
Console.WriteLine(item);
}
// 倒序输出字符串中每一个字符
for (int i = str.Length-1; i >= 0; i--)
{
Console.WriteLine(str[i]);
}
// 字符串的方法
// ToLower 将字符串中大写字符转为小写字符,数字不会受影响,返回的是一个新的字符串,不会对原来的字符串进行修改
Console.WriteLine(str);
string str1 = str.ToLower();
Console.WriteLine(str1);
// ToUppe 将字符串中小写字符转为大写字符,数字不会受影响,返回的是一个新的字符串,不会对原来的字符串进行修改
string str2 = str.ToUpper();
Console.WriteLine(str2);
// Trim 去除字符串两边的空格,中间的不会受影响,返回一个新的字符串,原来的字符串不会受影响
string str3 = str.Trim();
Console.WriteLine(str3);
// TrimStart 去除字符串前面的空格,返回一个新的字符串,原来的字符串不会受影响
string str4 = str.TrimStart();
Console.WriteLine(str4);
// TrimEnd 去除字符串后面的空格,返回一个新的字符串,原来的字符串不会受影响
string str5 = str.TrimEnd();
Console.WriteLine(str5);
// Split 通过指定的字符分割字符串,分割后会返回一个新的数组,所以需要定义一个数组类型的变量进行接收,返回的是字符串类型的数组
string strr = "20 50 60 70 80 90 100";
string[] staarr = strr.Split(' ');
foreach (string item in staarr)
{
Console.WriteLine(item);
}
// 输入一组数据,用空格隔开,求这组数据中的和,要计算,类型就要是整数
string userstr = Console.ReadLine();
string[] staarray = userstr.Split(' ');
int[] arr = new int[staarray.Length];
int sum = 0;
for (int i = 0; i < staarray.Length; i++)
{
int num = Convert.ToInt32(staarray[i]);
arr[i] = num;
}
foreach (int item in arr)
{
sum += item;
}
Console.WriteLine(sum);