zoukankan      html  css  js  c++  java
  • C#_选择结构,Console的应用,数据类型转换

    1:先看一个顺序结构编程,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication31
    {
        class Program
        {
            static void Main(string[] args)
            {
                double salse = 10001.25;
                double bonus;
                if (salse > 10000)
                {
                    bonus = salse * 0.05;
                }
                else
                {
                    bonus = 0;
                }
                Console.WriteLine(bonus);
                Console.ReadKey();
            }
        }
    }
    

      运行结果:

    2:针对Console的研究

    Console表示控制台,它是一个针对控制台输入输出的类。具体含有的成员函数有:

    Console.Write  表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。
    Console.WriteLine  表示向控制台写入字符串后换行。
    Console.Read 表示从控制台读取字符串,不换行。
    Console.ReadLine 表示从控制台读取字符串后进行换行。
    Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中。
    Console.Beep 通过控制台扬声器播放提示音。
    Console.Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。

    具体应用为

    (1)关于输出到控制台:

    Console.WriteLine();
    Console.Write();
    Console.WriteLine(输出的值);
    Console.Write(输出的值);
    Console.WriteLine("输出的格式字符串",变量列表);
    Console.Write("输出的格式字符串",变量列表);

    Console.WriteLine("This is {0}, this is {1} and {2}",strName[0],strName[1],strName [2],strName3]);

    这种方式中包含两个参数:“格式字符串”和变量列表。“This is {0}, this is {1} and {2}”这是格式字符串,{0}、{1}、{2}叫做占位符,代表后面依次排列的变量表,0对应变量列表的第一个变量,1对应变量列表的第2个变量,依次类推,完成输出。

    (2)关于从控制台输入:

    Console类提供的输入方法:

    Console.ReadLine(); 这一句代码返回一个字符串型数据,可以把它直接赋值给字符串变量,如:

    string strname=Console.ReadLine();

    有时需要从控制台输入数字,就用到前面介绍的内容,数据转换,如:

    int num=int.Parse(Console.ReadLine());

    int num=Convert.ToInt32(Console.ReadLine());

    上面两句代码效果相同,可以根据自己的习惯选择任意一种。

    注意:     

    Console.ReadLine()和Console.Read()的输入结果完全不同,不能混用。
    Console.Read(),  返回值为首字符的ASCII码

    Console.ReadLine(),  返回值为字符串。

    也就是说read方法只能读取第一个字符,而ReadLine能读多个字符也可以换行读取 

    Console.ReadKey()的作用:

    read是从控制台读取,key表示按下键盘,那么组合在一起的意思就是获取用户按下功能键显示在窗口中,用在前面的代码起到窗口暂停的功能,在调试状态下,只有按

    下任意键后窗口才会关闭。

    下面举个简单的例子:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication32
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("输入用户名和ID");
                string name = Console.ReadLine();
                int id = int.Parse(Console.ReadLine());
                Console.WriteLine("User Name is {0} 
    The id is {1}", name, id);
                Console.ReadKey();
            }
        }
    }
    

    运行结果:

    2:上面从控制台输入的方法都是输入的字符串,需要转换为数字。下面说明一下C#的类型转换。

    (1)隐式转换

        只要能保证值不会发生任何变化,类型转换就可以自动进行。例如如下代码:

    int val1=10;
    int val2=20;
    long total;
    total=val1+val2;
    

     long型变量包含的字节比int型变量包含的字节多,所以数据没有丢失的危险。在这种情况下,编译器会顺利进行转换。

        对于不同类型值之间的转换,如果从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以使用隐式转换。

    (2)显示转换

        显示转换需要用户明确指定转换的类型。例如:

    long val=20;
    int val1=10;
    val1=(int)val;
    

     将大范围类型的数据转换为小范围的类型的数据时,有可能丢失数据的危险。如果需要使用显式转换,但又不知道是否会丢失数据,可以使用checked运算符来检查转换是否安全。例如:

    long val=4000000000000;
    int val1;
    val1=checked((int)val);
    

     使用checked运算符可以检查数据类型转换是否安全,如果不安全,就会让运行库抛出一个溢出异常。

    (3)使用方法进行类型转换

        如果将一个数字转换为字符串。.NET类库提供了一些方法。Object类有一个ToString()方法,该方法在所有的.NET预定义类型中都进行了重写,返回对象的字符串表示。例如:

    int i=10;
    string str=i.ToString();
    

     如果需要将一个字符串转换为某种值类型,可以使用所有预定义值类型都支持的Parse方法。Parse方法可以将特定格式的字符串转换为数值,该方法的具体使用格式为:

    string str="123";
    int i=int.Parse(str);
    decimal x=decimal.Parse("3.14");
    

      其中,decimal是一种专用标识财务计算的数据类型,其大小为128位,并且不遵守四舍五入规则,是十进制。

        另外,使用Convert类提供的方法也能进行各种值类型之间的转换。Convert类可以将一个基本数据类型转换为另一个基本数据类型。该类为每种数据类型转换都提供了以To开始的静态方法。例如:

    Convert.ToInt32()	转换为整型(int)
    Convert.ToChar()	转换为字符型(char)
    Convert.ToString()	转换为字符串型(string)
    Convert.ToDateTime()	转换为日期型(datetime)
    Convert.ToDouble()	转换为双精度浮点型(double)
    Conert.ToSingle()	转换为单精度浮点型(float)
    

     具体用法请看:https://msdn.microsoft.com/zh-cn/library/system.convert.aspx

        使用Parse方法转换的实例如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication31
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入数字:");
                double salse = double.Parse(Console.ReadLine()); 
                double bonus;
                if (salse > 15000)
                {
                    bonus = salse * 0.1;
                }
                else if (salse > 5000)
                {
                    bonus = salse * 0.05;
                }
                else
                {
                    bonus = 0;
                }
                Console.WriteLine(bonus);
                Console.ReadKey();
            }
        }
    }
    

      运行结果:

  • 相关阅读:
    .NET创建WebService服务简单的例子
    SVN服务器搭建
    Visual Studio 2017 系统发布部署服务器教程
    C#进阶--WebApi异常处理机制
    利用iis虚拟目录实现文件服务器功能(分布式存储)
    jQuery 选择器
    jQuery 简介
    从「闭包」到 思考人生
    跨域
    ajax 和 mock 数据
  • 原文地址:https://www.cnblogs.com/lovemi93/p/8056496.html
Copyright © 2011-2022 走看看