C#自学笔记_003_Real

C#自学笔记_003_Real

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace Csharp003
{
    //定义一个枚举类型
    public enum Season
    {,,,}
    //定义另一个枚举类型
    public enum QQState
    { 
        Online,
        Offline,
        Leave,
        Busy,
        QMe
    }
    //定义一个结构体
    public struct Person
    {
        public string _name;
        public int _age;
        public string _gender;
    }

    class Program
    {
        static void Main(string[] args)
        {
            //1、for循环
            //for练习:输出乘法口诀表
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= 9; j++)
                {
                    Console.Write("{0}*{1}={2}\t", i, j, i*j);
                }
                Console.WriteLine();//啥也不写就是换行
            }
            //for练习:输出三角形乘法口诀表
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}*{1}={2}\t", i, j, i * j);
                }
                Console.WriteLine();//啥也不写就是换行
            }

            //2、Parse、TryParse的使用
            //int.Parse()的使用与Convert.ToInt32()的使用完全一致
            //本质上,Convert.ToInt32()是爱系统中调用int.Parse()
            int number = int.Parse("123abd"); //系统报出与Convert.ToInt32()一样的错误
            //char.Parse  double.Parse  float.Parse略过

            //int.TryParse的使用
            //语句执行过程,该语句辉县判断字符串能否转换成数字,
            //如果能,则会将字符串转换成数字赋值给n1,并返回bool值true,
            //如果不能,则将0赋值给n1,并且返回bool值false
            int n1 = 1;
            bool b1 = int.TryParse("123abc", out n1);
            Console.WriteLine(b1);
            Console.WriteLine(n1);
            
            //练习:循环输入5个人的年龄并输出,如果出现负数或者答疑150的数直接报错,并停止输入
            for (int i = 0; i < 5; i++)
            {
                Console.Write("请输入第{0}个人的年龄:", i + 1);
                int n2 = 0;
                bool b2 = int.TryParse(Console.ReadLine(), out n2);
                if (b2 && n2 > 0 && n2 <= 150)
                {
                    Console.WriteLine("第{0}个人的年龄为{1}岁", i + 1, n2);
                }
                else 
                {
                    Console.WriteLine("输入年龄有误!!");
                    break;
                }
               
            }
            
            //3、*重点内容:程序调试
            //1)写完一段程序后,想看一下程序的执行过程
            //2)当你写完这段程序后,发现,程序并没有按照你想象的样子去执行
            //调试方法:
            //(1)f11逐句进行调试(单步调试)
            //(2)f10逐过程进行调试
            //(3)断点调试
            //黄色标注的代码是即将进行执行但是还没执行的代码

            //断点调试
            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            //在相应的程序前面的序号左边点击鼠标左键,会出现一个红点,即为断点
            //直接点击运行程序,程序执行到断点处就直接停止,然后可以按f11进行逐条代码执行
            Console.WriteLine("这行代码可能有错误。。。");
            Console.WriteLine("这行代码可能有错误。。。");
            Console.WriteLine("这行代码可能有错误。。。");
            Console.WriteLine("这行代码可能有错误。。。");
            Console.WriteLine("这行代码可能有错误。。。");

            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            Console.WriteLine("Hello World!!");
            

            //4、求1——100之间的质数(素数)
            for (int i = 2; i <= 100; i++)
            {
                bool b = true;
                for (int j = 2; j < i; j++)
                {
                    if (i % j == 0)
                    {
                        b = false;
                        break;
                    }
                }
                if (b)
                {
                    Console.WriteLine(i);
                }
            }

            //5、产生随机数
            //1)创建能够产生随机数的对象
            Random r = new Random();
            while (true)
            {
                //2)让产生随机数这个对选哪个调用方法来产生随机数
                int rNumber = r.Next(1, 11);
                Console.WriteLine(rNumber);
                Console.ReadKey();
            }
            

            //6、常量、枚举类型、结构
            //1)常量 const
            // 格式:const 数据类型 变量名 = 数值; 
            //2)枚举类型
            //语法:
            //public(可省略) enum 枚举名
            //{ 
            //    值1;
            //    值2;
            //    值3;
            //    值4;
            //.........
            //}
            //每个字符含义:
            //public:访问修饰符,公开的公共的,哪都能访问
            //enum:关键字,声明枚举的关键字
            //枚举名:要符合Pascal命名规范
            //应将枚举类型声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举
            //枚举就是一个变量类型,跟int、double、string、decimal一样,只是声明、赋值、使用的方式跟那些普通的变量类型不一样

            //下面是定义一个枚举变量
            Season season = Season.;
            Console.WriteLine(season);
            
            QQState state = QQState.Online;
            //枚举类型默认可以跟int类型互相转换,枚举类型跟int类型是兼容
            //转换成int类型之后,默认第一个变量代表0,可以给枚举类型变量中的值进行赋值,然后输出int类型进行找规律
            int n = (int)state;
            Console.WriteLine(n);
            Console.WriteLine((int)QQState.Offline);
            Console.WriteLine((int)QQState.Leave);
            Console.WriteLine((int)QQState.Busy);
            Console.WriteLine((int)QQState.QMe);
            //将int类型转换为枚举类型
            int n2 = 2;
            int n3 = 8;
            QQState state2 = (QQState)n2; //直接输出枚举类型中对应变量数值位置的字符串
            QQState state3 = (QQState)n3; //枚举类型中的字符串数量小于变量数值8,则不报错,还是输出8
            Console.WriteLine(state2);
            Console.WriteLine(state3);
            //所有的类型都能够调用ToString转换成string类型
            //下面是将枚举类型转混成string类型
            QQState state4 = QQState.Online;
            string s4 = state4.ToString();
            Console.WriteLine(s4);
            //将string类型转换成枚举类型
            string s5 = "0";
            //调用Parse的方法可以帮助我们将一个字符串转换成对应的枚举尅性
            语句格式:要转换的枚举类型 枚举类型变量名 = (要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型), 要转换的字符串);
            QQState state5 = (QQState)Enum.Parse(typeof(QQState), s5);
            Console.WriteLine(state5);

            //3)结构体struct
            //语法结构
            //public struct 结构体变量名(单词首字母大写pascal原则)
            //{ 
            //    public 数据类型 _变量名;
            //    public 数据类型 _变量名; //字段变量名前加下划线表示字段,为的是与其他变量区分
            //    ... ...
            //}

            //例子:定义两个结构体变量张三和李四
            Person zsName;
            zsName._name = "张三";
            zsName._age = 21;
            zsName._gender = "男";

            Person lsName;
            lsName._name = "李四";
            lsName._age = 23;
            lsName._gender = "女";
            
            //7、数组
            //定义一个数组
            //格式:数据类型[] 数组名 = new 数据类型[数组大小]
            int[] nums1 = new int[10];
            //给数组赋值
            for (int i = 0; i < nums1.Length; i++)
            {
                nums1[i] = i + 1;
            }
            for (int j = 0; j < nums1.Length; j++)
            {
                Console.WriteLine(nums1[j]);
            }
            //数组的类型
            int[] nums = new int[10]; //数值类型的数组初始值默认为0
            string[] str = new string[10]; //字符串型的初始值是null 与""空字符的不同就是,null系统不会开内存
            //""空字符的话系统会开内存空间,但是内存里什么都不放
            bool[] b = new bool[10]; //布尔数组的初始值默认是false
            //声明数组的方式
            int[] nums2 = new int[10];
            int[] nums3 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int[] nums4 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int[] nums5 = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            Console.ReadKey();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仲子_real

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值