for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:定义的循环变量
表达式2:关系表达式 循环条件
表达式3:可以使循环条件不成立的条件
执行过程:首先执行表达式1.再执行表达式2 。如果表达式2的结果为true 那么则执行循环体,如果为false 则跳出for循环
执行完循环体后,再执行表达式3,再执行表达式2,如果表达式2为true 则继续执行循环体
如果表达式2 为false 则跳出循环
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
for(int k=0;k<10;k++)
{
Console.WriteLine("大病初愈");
}
}
}
3中转换数字的方法
Conver.ToInt32("字符串")
int.Parse("字符串")
上面两种转换,一旦转换不成功,报异常
int.TryParse("字符串",out int类型)
返回一个bool类型,来告诉用户这次转换是否成功,如果成功的话,转换成功后的值存放在咱们自己定义的int的类型的变量,返回的bool类型的结果是true
如果转换失败。咱们自己定义的int类型的变量是0,跟咱们给int类型赋的初值没关系,返回的bool类型的变量是false
2、三元表达式 表较数字大小 输入姓名
表达式1?表达式2:表达式3
执行原理:表达式1一定是一个关系表达式,如果表达式1 的值为true,那么表达式2的值就是整个三元表达式的值
如果表达式1 的值为false,那么表达式3的执行就是整个三元表达式的值
注意:表达式2和表达式3的类型一定相同,并且和整个三元表达式的结果的类型也相同
//Console.WriteLine("请输入数字1");
//int number1 = Convert.ToInt32(Console.ReadLine());
//Console.WriteLine("请输入数字2");
//int number2 = Convert.ToInt32(Console.ReadLine());
//if (number1 > number2)
//{
// Console.WriteLine("这两数中比较大的是{0}", number1);
//}
//else
//{
// Console.WriteLine("这两个数字钟比较大的是{0}",number2);
//}
//执行原理:表达式1一定是一个关系表达式,如果表达式1 的值为true,那么表达式2的值就是整个三元表达式的值
// 如果表达式1 的值为false,那么表达式3的执行就是整个三元表达式的值
//注意:表达式2和表达式3的类型一定相同,并且和整个三元表达式的结果的类型也相同
//int max= number1 > number2 ? number1 : number2;
//Console.WriteLine("这两个数中比较大的数字是{0}",max);
//Console.ReadKey();
//Console.WriteLine("请输入姓名");
//string name = Console.ReadLine();
//if (name == "老赵")
//{
// Console.WriteLine("人才啊");
//}
//else
//{
// Console.WriteLine("充其量就是一淫才");
//}
//string result = name == "老赵" ? "人才啊" : "淫才啊";
//Console.WriteLine(result);
//Console.ReadKey();
Console.WriteLine("请输入数字1");
int number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入数字2");
int number2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入数字3");
int number3 = Convert.ToInt32(Console.ReadLine());
// int max=(number1>number2)&&(number1>number3)?number1:number2:number3;
int max = (max = number1 > number2 ? number1 : number2) > number3 ? max : number3;
Console.WriteLine(max);
Console.ReadKey();
//Console.WriteLine("请输入一个名字");
//string name = Console.ReadLine();
//string result = name == "Alice" ? "真漂亮" : "丑死啦";
//Console.WriteLine(result);
//Console.ReadKey();
return:终止当前方法的执行
break:跳出当前循环
continue:回到当前循环的判断条件
3、输入随机数 随即显示这个人上辈子是干啥的
Random r = new Random();//创建Random这个类的对象
int number = r.Next(0, 5);//调用r的Next方法 ,能取到0-4,取不到5
// switch (number)
// {
// case 1:
// job = "掏大粪";
// break;
// case 2:
// job = "卖春";
// break;
// case 3:
// job = "八大胡同老鸨";
// break;
// case 4:
// job = "汉奸";
// break;
// case 5:
// job = "军统大元帅";
// break;
// }
// if (name == "end")
// {
// Console.WriteLine("程序结束");
// break;
// }
// else
// {
// Console.WriteLine("{0}上辈子是{1}", name, job);
// }
//}
//Console.ReadKey();
Random r = new Random(); //定义一个随机数的类
string name = ""; //接收用户输入的姓名
int number = 0; //定义一个变量,接收随机数
string job = ""; //定义一个变量来存储工作
while (true)
{
Console.WriteLine("请输入你想知道的人");
name = Console.ReadLine();
number = r.Next(1,5); //接收随机数 1-4之间
switch (number)
{
case 1:
job = "掏大粪";
break;
case 2:
job = "拉车的";
break;
case 3:
job = "卖水的";
break;
case 4:
job = "卖春的";
break;
}
Console.WriteLine("{0}上辈子是{1}",name,job);
}
常量:
//变量
//声明方式:
//变量类型 变量名=值;
//变量可以重复赋值
//int number = 10;
//number = 20;
//常量 const
//不想值被改变 就把变量标记成常量
//声明方式
//const 变量类型 变量名=值;
//常量不能被重新赋值
const int number = 10;
//const int number1 = 5; //不可改变的
//const int number2 = 6; //不可改变的
//输入名字随机显示这个人上辈是什么样的人
//Random r = new Random();
//int number = 0;
//string job = "";
//while (true)
//{
// Console.WriteLine("请输入你想知道的人");
// string name = Console.ReadLine();
// number = r.Next(1,6);
4、为什么要使用枚举?
1)为了规范用户的输入
枚举的语法
[访问修饰符] enum 枚举名
{
值1,
值2,
值3,
值4......
}
把枚举写到命名空间下,说明这个命名空间下的所有的类都能够使用这个枚举
把枚举写到类中,说明这个类中所有的方法都能够使用这个枚举
使用枚举:
枚举类型 枚举名=枚举类型.枚举值;
namespace _05枚举
{
//public enum Gender
//{
// 男,//0
// 女,//1
// 春哥,//2
// 曾哥,//3
// 迟到哥//4
//}
class Program
{
static void Main(string[] args)
{
//while (true)
//{
// Console.WriteLine("请输入你的性别");
// string gender = Console.ReadLine();
// Console.WriteLine("您输入的性别是{0}", gender);
// Console.ReadLine();
//}
//Gender gender = Gender.男;
//Gender gender2 = Gender.女;
//Gender gender3 = Gender.春哥;
//Gender gender4 = Gender.曾哥;
//Gender gender5 = Gender.迟到哥;
//Console.WriteLine("您输入的是{0}", gender);
枚举值和int类型之间的转换
//枚举是基于int类型的,也就说,可以把枚举强转为int类型
默认第一个枚举值是0,往后依次类推
namespace _03_枚举
{
/// <summary>
/// 定义一个枚举,,里边存储有 男女
/// </summary>
public enum Sex
{
男,
女
}
/// <summary>
/// 定义一个QQ的状态
/// </summary>
public enum QQstal
{
上线,
繁忙,
隐身,
离开,
寂寞
}
class Program
{
static void Main(string[] args)
{
// 避免用户随意输入
//Sex sex = Sex.男; //枚举类型 变量名=枚举类型 . 值
//Sex sex1 = Sex.女;
//Sex sex2 = Sex.男;
//Sex sex3 = Sex.女;
QQstal stal1 = QQstal.上线;
QQstal stal2 = QQstal.寂寞;
QQstal stal3 = QQstal.离开;
QQstal stal4 = QQstal.隐身;
QQstal stal5 = QQstal.繁忙;
Console.WriteLine(stal1);
Console.WriteLine(stal2);
Console.WriteLine(stal3);
Console.WriteLine(stal4);
Console.WriteLine(stal5);
Console.WriteLine("================================================");
int stalnum1 = (int)stal1;
int stalnum2 = (int)stal2;
int stalnum3 = (int)stal3;
int stalnum4 = (int)stal4;
int stalnum5 = (int)stal5;
Console.WriteLine(stalnum1); //可以强转为int类型
Console.WriteLine(stalnum2);
Console.WriteLine(stalnum3);
Console.WriteLine(stalnum4);
Console.WriteLine(stalnum5);
Console.ReadKey();
}
}
}
那句特殊的代码
namespace _04神奇的一句话
{
public enum QQstal
{
在线,
离开,
繁忙,
寂寞
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个状态,在线/离开/繁忙/寂寞");
string zhuangtai = Console.ReadLine();
try
{
QQstal q = (QQstal)Enum.Parse(typeof(QQstal), zhuangtai); //转换
}
catch
{
Console.WriteLine("输入有误");
}
Console.ReadKey();
}
}
}
结构
[访问修饰符] struct 结构名
{
结构的成员;
}
变量和字段的最大区别:在程序运行的时候,变量只能存一个值,而字段可以存多个值
namespace _08结构
{
public enum Gender
{
男,
女
}
public struct Person
{
//结构成员
//1、变量
public string _name;//叫做字段
public int _age;
public Gender _gender;
//2、方法
}
class Program
{
static void Main(string[] args)
{
//在计算机中分别的描述张三、李四、王五
//string zsName = "张三";
//char zsGender = '男';
//int zsAge = 18;
//string lsName = "李四";
//char lsGender = '男';
//int lsAge = 15;
//string wwName = "王五";
//char wwGender='女';
//int wwAge = 19;
//一次性的声明多个不同类型的变量
//结构
// [访问修饰符] struct 结构名
// {
// 结构的成员;
// }
Person zsPerson;
zsPerson._name = "张三";
zsPerson._age = 15;
zsPerson._gender = Gender.男;
Person lsPerson;
lsPerson._name = "李四";
lsPerson._age = 18;
lsPerson._gender = Gender.女;
//string zsName = "张三";
//char zsGender = '男';
//int zsAge = 18;
}
}
}
namespace _05结构练习
{
/// <summary>
/// 定义一个person的结构
/// </summary>
public struct Person
{
public string _name;
public int _age;
public Sex _sex;
}
/// <summary>
/// 定义一个性别的枚举
/// </summary>
public enum Sex
{
男,
女
}
/// <summary>
/// 定义一个mycolor结构
/// </summary>
public struct MyColor
{
public int _red;
public int _blue;
public int _green;
}
class Program
{
static void Main(string[] args)
{
//2 定义一个结构类型Person,有三个成员,分别为姓名,性别,年龄
//声明两个Person类型的变量,分别表示 张三 男 18岁/ 小兰 女 16岁
Person zs;
zs._name = "张三";
zs._age = 18;
zs._sex = Sex.男;
Person xl;
xl._name = "小兰";
xl._age = 16;
xl._sex = Sex.女;
//定义一个结构叫MyColor,有三个成员,分别定义为int类型的red,green,blue
//声明一个 MyColor类型的变量,并对其成员赋值.使MyColor可以表示成一个红色.
//MyColor color;
//color._red = 255;
//color._blue = 0;
//color._green = 0;
//MyColor color;
//color._red = 255;
//color._blue = 0;
//color._green = 0;
}
}
}
5、数组的声明 画图
数组:一次性声明多个相同类型的变量
数组的取值和赋值
数组元素的重新赋值
int[] numbers = new int[10];//声明了一个长度为10的数组
int[] numbers2 = { 1, 2, 3, 4, 5 };//这种声明方式,在声明的时候,就捎带这给数组赋值了
int[] numbers3 = new int[3] { 1, 2, 3 };//这种声明方式,也是在声明的时候,就赋值了,赋值的时候要注意数组的长度
int[] numbers4 = new int[] { 1, 2, 3, 4, 5 };//声明的时候,就赋值了
int[] numbers=new int[10];
如果只是声明数组,但是不给数组赋值,默认数组中的每个元素的值都是0,前提:这是int类型的数组
如果一个数组的长度是10,那么索引从0-9 数组的长度-1
数组一旦声明了长度,那么这个数组的长度绝对不能再被改变
小练习
求数组的最大值和最小值
//求数组的最大值和最小值
//int[] numbers = {4,6,7,345,54,4,235,-345,535,-35,35,0 }; //定义一个数组
//int max = 0; //定义一个最大值接收
//int min = 0; //定义一个最小值接收
//for (int i = 0; i < numbers.Length; i++)
//{
// if (max < numbers[i])
// {
// max = numbers[i];
// }
// if(min>numbers[i])
// {
// min=numbers[i];
// }
//}
//Console.WriteLine("最大值是{0},最小值是{1}",max,min);
//Console.ReadKey();
提示用户输入班级人数 然后循环的输入学员成绩 把学员的成绩循环的放到数组中 然后 求学员的总成绩和平均成绩
////提示用户输入班级人数 然后循环的输入学员成绩 把学员的成绩循环的放到数组中 然后求学员的总成绩 和平均成绩
//Console.WriteLine("请输入班级人数");
//int students = Convert.ToInt32(Console.ReadLine()); //接收班级人数
//int[] count = new int[students];
//int sum = 0;
//for (int i = 0; i < count.Length; i++)
//{
// Console.WriteLine("请输入第{0}个人的成绩", i + 1);
// //把用户输入的每一个成绩循环的放到数组的每一个元素中
// count[i] = Convert.ToInt32(Console.ReadLine());
// sum += count[i];//循环的把每一个成绩加到sum里
//}
//Console.WriteLine("{0}个人的班级,总成绩是{1},平均成绩是{2}", students, sum, sum / students);
//Console.ReadKey();
// 练习3:数组里面都是人的名字,分割成:例如:老杨|老苏|老邹…” (老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马
// 练习3:数组里面都是人的名字,分割成:例如:老杨|老苏|老邹…”
//(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马)
//string[] names = {"老杨","老苏","老周","老马","老牛","老蒋","老王","老马" };
//string str = "";
//for (int i = 0; i < names.Length-1; i++)
//{
// str = names[i] + "|"; ;
// Console.Write(str);
//}
//Console.Write(str+names[names.Length-1]);
//Console.ReadKey();
//将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,
//如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。
//将一个整数数组的每一个元素进行如下的处理:如果元素是正数则将这个位置的元素的值加1,
//如果元素是负数则将这个位置的元素的值减1,如果元素是0,则不变。
int[] numbers = {-1,-2,-3,-4,0,1,2,3,4 };
for (int i = 0; i < numbers.Length; i++)
{
if (numbers[i] > 0)
{
numbers[i] += 1;
}
else if (numbers[i] < 0)
{
numbers[i] -= 1;
}
else
{
}
}
for (int i = 0; i < numbers.Length; i++) //通过一个for循环 便利出来
{
Console.WriteLine(numbers[i]);
}
Console.ReadKey();
6、冒泡排序
int[] numbers={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
第一趟 8 7 6 5 4 3 2 1 0 9 比较了9次 i=0
第二趟 7 6 5 4 3 2 1 0 8 9 比较了8次 i=1
第三趟 6 5 4 3 2 1 0 7 8 9 比较了7次 i=2
第四趟 5 4 3 2 1 0 6 7 8 9 比较了6次 i=3
第五趟 4 3 2 1 0 5 6 7 8 9 比较了5次 i=4
第六趟 3 2 1 0 4 5 6 7 8 9 比较了4次 i=5
第七趟 2 1 0 3 4 5 6 7 8 9 比较了3次 i=6
第八趟 1 0 2 3 4 5 6 7 8 9 比较了2次 i=7
第九趟 0 1 2 3 4 5 6 7 8 9 比较了1次 i=8
外面循环是用来控制比较趟数的
for(int i=0;i<numbers.Length-1;i++)
{
for(int j=0;j<numbers.Length-1-i;j++)
{
if(numbers[j]>numbers[j+1])
{
交换变量
}
}
}
例如
int[] numbers = {1,2,3,4,5,6,7,8,9,0 };
//for (int i = 0; i < numbers.Length-1; i++)
//{
// for (int j = 0; j < numbers.Length-1-i; j++)
// {
// if (numbers[j] < numbers[j + 1])
// {
// int temp = numbers[j];
// numbers[j] = numbers[j + 1];
// numbers[j + 1] = temp;
// }
// }
//}
//for (int i = 0; i < numbers.Length; i++)
//{
// Console.WriteLine(numbers[i]);
//}
//Console.ReadKey();