作者if4 (逍遥游)
看板C_Sharp
标题Re: [问题] 九九乘法表
时间Fri May 4 20:05:22 2012
我照你的格式改成 for 回圈...
string str;
Console.Write(" ");
for(int x=1;x<10;x++)
{
str = Convert.ToString(x);
Console.Write(str.PadLeft(3));
}
Console.Write("\n");
for(int y=1;y<10;y++)
{
Console.Write(y);
for(int x=1;x<10;x++)
{
str = Convert.ToString(x * y);
Console.Write(str.PadLeft(3));
}
Console.Write("\n");
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.181.174
1F:推 optimist9266:原来有PadLeft这招喔 05/04 20:08
2F:→ gasbomb:还满好用的,就不用对齐对到吐了 05/04 20:09
3F:→ if4:其实我现在在学JAVA已经测试过逻辑,但是我没有C#编译器测试^^ 05/04 20:17
4F:→ ssccg:其实用 Console.Write("{0,3}", x*y); 就好了 05/04 21:29
ssccg大大高招 ^_^ 程式又简化了...为什麽可以这样用啊?
我已经安装 VS 2010 Express 已经可以检验您的说法,效果是一样的,正确无误。XD
这样省掉一个字串变数的宣告...真的很精简...^_^
Console.Write(" ");
for (int x = 1; x < 10; x++)
{
Console.Write("{0,3}", x);
}
Console.WriteLine();
for (int y = 1; y < 10; y++)
{
Console.Write(y);
for (int x = 1; x < 10; x++)
{
Console.Write("{0,3}", x * y);
}
Console.WriteLine();
}
Console.ReadLine();
※ 编辑: if4 来自: 114.25.181.174 (05/05 01:52)
※ 编辑: if4 来自: 114.25.181.174 (05/05 10:53)
5F:→ andymai:那是string format... 05/05 11:15
6F:→ if4:谢谢...我再查资料...感恩 ^_^ 05/05 11:29
8F:→ andymai:是...所以是Console.WriteLine()用了string format~并不是 05/05 13:45
9F:→ andymai:一定要Console.Write才能达成目的... 05/05 13:46
10F:→ andymai:特别声明一下~s大没说错~只是我想提醒这一点... 05/05 13:47
11F:→ if4:谢谢 andymai 大大的解说,感恩 ^_^ 05/05 13:48
12F:→ if4:那如果要真的印出 "{0,3}" 是不是需要用到 \ 符号?谢谢 ^_^ 05/05 13:54
13F:→ if4:我试过了,要印出 "\{0,3\}" 无法使用,难道要自己合成字串? 05/05 15:45
不加参数就可以直接印出来 Console.Write("{0,3}") 如果後面要印出 x*y
就要写两行,当然...这不是本问题的求解...可能在别的问题上吧 XD
Console.Write("{0,3}");
Console.Write(x * y);
※ 编辑: if4 来自: 114.25.181.174 (05/05 16:04)
14F:→ ssccg:不加参数就印的出来是因为会执行到 Console.Write(string) 05/05 16:27
15F:→ ssccg:这个多载版本,而不是Write(string, params object[])这个 05/05 16:28
16F:→ ssccg:会把前面的string当成format string来处理的版本 05/05 16:28
17F:→ ssccg:{}并不是特殊字元,有用format string的method才会处理他 05/05 16:31
18F:→ ssccg:如果要在format string中印{或}的话,是用{{或}} 05/05 16:36
19F:→ if4:谢谢 ssccg 大大的解说,感恩 ^_^ 05/05 17:48