C#实现打印等腰三角形和直角三角形;Read()、ReadLine()、ReadKey()区别

364 阅读2分钟

利用for循环打印等腰直角三角形

思路:采用双层for循环实现,外层for循环实现每一行空格的长度,内层for循环每一行星号的个数,等腰三角形的**是以1 3 5 7 9排列的等差数列*,由此我们可以得出一个内层循环k的变化幅度。

        `//实现打印等腰三角形
        for (int i = 1; i <= 5; i++)
        {
            for (int j = 1; j <= 5 - i; j++)
            {
                //控制每一行的空格数量,注意这里不能使用WriteLine方法,否则会出现换行
                Console.Write(" ");
            }
            //发现规律,控制1 3 5 排列
            for (int k = 1; k <= 1 + (i - 1) * 2; k++)
            {
                Console.Write("*");
            }
            Console.Write("\n"); //打印每一行换行
        }`

根据键盘输入的个数,利用for循环打印直角三角形

思路:首先键盘获取用户输入的数字,采用ReadLine()实现获取字符串,外层for循环控制有多少行,内层for循环控制每一行可以输出多少个的个数 `

        ``` Console.WriteLine("请输入要打印的行数");
            //获取键盘输入的数字并将行数转化为int类型
            int n = int.Parse(Console.ReadLine());
            for (int i = 1; i <= n; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("*");
                }
                Console.Write("\n");
            }`

注意点: ReadLine()和Read()ReadKey()三者之间的区别:

  1. Read()是读取输入的一个字符,返回的是整型类型,返回输入字符的ASCLL码值;(输入一串字符,只会读取第一个字符)

  2. ReadLine()则是读取输入的一行,返回的是字符串类型;

  3. Console.ReadKey() 则是等待用户按下任意键,一次读入一个字符。

         int num = Console.Read();
         Console.WriteLine("Console.Read(){0}", num);`
    

输出ABC的时候,只会获取输入的第一个字符,并输出他对应的ASCll的值

image.png

而ReadLine()方法是读取输入的一行,可以接受用户输入的所有内容,返回的是字符串类型,所以往往我们需要整型数据的时候,我们需要将字符串类型转化为整型类型来提供我们使用

        String str = Console.ReadLine();
        Console.WriteLine("Console.ReadLine{0}", str);`

image.png

这时候输入ABC可以完全的接收结果

        `String strKey = Console.ReadKey().Key.ToString(); //转化为String类型
        Console.WriteLine("Console.ReadKey的值为:{0}", strKey);`

等待用户按下任意键,一次读入一个字符

注意点:ReadKey()是在按下任意一个键时就会关闭命令窗口,而ReadLine()是在当用户按下回车键是才会关闭命令窗口!虽然两者都会让命令窗口进行停留,但是也是各有千秋,运用时也需要按照我们的需求进行选取