黑马程序员技术交流社区

标题: 请教一个关于运行效率的问题 [打印本页]

作者: 李帅    时间: 2012-8-2 09:33
标题: 请教一个关于运行效率的问题
本帖最后由 李帅 于 2012-8-2 09:30 编辑

前几天写基础测试时 一个九九乘法表  我刚开始一直用 console.writeline()  无法实现总是换行。

后来百度一下用  console.writel() 便可解决。
static void Main(string[] args)
        {
            //用两个for循环实现九九乘法表
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    int sum;
                    sum = j * i;
                    Console.Write("{0}*{1}={2}",j,i,sum);
                }
                 Console.WriteLine();
            }
            Console.ReadKey();
        }


但是我仔细一下用console.writeline() 还是能解决。

static void Main(string[] args)
        {

            for (int i = 1; i <= 9; i++)
            {
                string s = "";
                for (int j = 1; j <= i; j++)
                {
                    int sum;
                    sum = j * i;
                    s += j.ToString() + "*" + i.ToString() + "=" + sum.ToString() + " ";   //同一被乘数同行显示
                }
                s += "\n";   //实现换行显示

                Console.WriteLine(s);
            }
            Console.ReadKey();
        }



请问哪种方法执行效率更高?



作者: 许庭洲    时间: 2012-8-2 09:54
  s += j.ToString() + "*" + i.ToString() + "=" + sum.ToString() + " ";   //该行明显没有      Console.Write("{0}*{1}={2}",j,i,sum);  执行效率高,主要原因是前面语句还要对三个整型变量j, i和sum进行字符串转换。
作者: 李帅    时间: 2012-8-2 11:35
许庭洲 发表于 2012-8-2 09:54
s += j.ToString() + "*" + i.ToString() + "=" + sum.ToString() + " ";   //该行明显没有      Console ...

当局者迷,  我没注意到这个问题。   

十分感谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2