黑马程序员_for循环的过程 结构 冒泡排序

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

 

转载于:https://www.cnblogs.com/fight2014/p/3637101.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值