.NET基础-5-类型转换|三元运算符|枚举|结构

水仙花数(必须是三位数):百位数字的立方+十位数字的立方+各位数字的立方=当前数字本身

for(int i=100; i <=999; i++)

{

int bai=i/100;

int shi=i%100/10;

int ge=i%10;

if (bai*bai*bai+shi*shi*shi+ge*ge*ge==i)

{

Console.WriteLine(i);

}

}


输出乘法口诀

 for (int i = 1; i <= 9; i++)
{
   for (int j = 1; j <= i; j++)
   {
       Console.Write("{0}*{1}={2}\t", j, i, i * j);
    }

Console.WriteLine();}

}

Console.ReadKey();


类型转换:Convert/Parse/TryParse

(int)变量名[强制类型转换]:

该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,单是从long类型转换到int类型的时候就需要使用显示转换,也就是该数据类型转换方式,否则会产生编译错误

该方式对于浮点数会做无条件的舍去,失去精度

改方法也可以记性object到int的转换,但是,object的值要赋予int类型的值,否则会产生编译错误,而object为null的时候回出错

并且,不能用来处理char类型到int类型的转换,否则返回的值是ASCII代码,并不是你想要的结果


int.Parse(string雷星星变量):

该方法是讲数字内容的字符串转换为int类型,如果字符串内容为空或者null,则会抛出ArgumentNullException异常,如果自发货窜内容不是数字,则会抛出FormatException异常,如果字符串内容所表示的数字超出int类型可以表示的范围,则抛出OverFlowException异常

使用该方法的啥时候只能处理字符串内容,而且字符串内容只能是int类型可以表示的范围之内


int.TryParse(string s,out int result):

该方式也是讲数字内容的字符串转换为int类型,但是该方式比int.Parse优越的地方就是他不会抛出异常,如果转换成功则返回true,如果转换失败则返回false,最后一个返回参数是输出值,如果转换成功则输出相应的值,如果转换失败则返回0


Convert.ToInt32(string s):

该方式不仅可以将字符串转换为int类型,还可以将其他类型的值转换为int类型,如果变量为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,在转换成int的时候回造成程序错误

该方式对于浮点数会四舍五入

改方式同样不能护理char类型,否则返回的也是ASCII码


求1-100的质数

质数:只能被1和自己整除的数,2是最小的质数,负数不是质

            bool show = true;
            for (int i = 2; i <= 100; i++)
            {
                for (int j = 2; j < i; j++)
                {
                    if (i % j == 0)//不是质数
                    {
                        show = false;
                        break;//不是质数则跳出当前循环不在继续内层循环
                    }
                }

                if (show)
                {
                    Console.WriteLine(i);
                }
                show = true;
            }
            Console.ReadKey();


三元运算符;

变量=表达式1?表达式2:表达式3

先判断表达式1是否正确,如果正确则变量值为表达式2的结果,否则为表达式3的结果

ps:表达式2的运算结果和表达式3运算结果与变量三者的类型要保持一致

int b=6>4?6:4;//如果6大于4,则为b赋值6,否则则为b赋值4


产生随机数,需要用到Random
            while (true)
            {
                Random rd = new Random();
                int s = rd.Next(100, 999);
                Console.WriteLine(s);
                Console.ReadKey();
            }

时间种子:

代码

for(int i=0;i<100;i++)

       Random rd = new Random();

       int s = rd.Next(100, 999);

       Console.WriteLine(s);

Console.ReadKey();

与代码

Random rd = new Random();

for(int i=0;i<100;i++)

       int s = rd.Next(100, 999);

       Console.WriteLine(s);

Conosole.ReadKey();

运行之后产生的结果大不相同,前面一个在循环里面创建对象,会导致产生的随即数出问题,而后一个在循环之外创建对象,则可以正常产生随机数


常量:

被关键字const修饰的变量,常量一旦声明则不能重新赋值


枚举:

枚举类型和int类型相互兼容,可以直接使用强类型转换相互转换,默认的枚举类型从0开始

        public enum Sex
        {
            男 = 1,
            女 = 2,

        }

            //枚举强制转换为int
            int sw = (int)Sex.男;
            Console.WriteLine(sw);
            //int强制转换为枚举
            int b = 1;
            Sex sec = (Sex)b;
            Console.WriteLine(sec);
            //将枚举转换成字符串
            Sex se = Sex.男;
            Console.WriteLine(se.ToString());
            //将字符串转换成枚举
            string na = "2";
            Sex se2 = (Sex)Enum.Parse(typeof(Sex), na);
            Console.WriteLine(se2);

            Console.ReadKey();



结构类型:为了一次创建多个不同类型的变量

ps:此处的不再称为变量,而是字段

    public struct Person
    {
        public string _name;//这里称为字段,而不是变量,在命名字段的时候前面加个下划线

        public int _age;

        public char _gender;

    }

//使用如下:

            Person per1;
            per1._gender = '男';
            per1._name = "张三";
            per1._age = 18;

Int32是一个结构,可以查看到











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值