---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
Console.WriteLine("请输入菱形\"◇\"的长度:");
//菱形的上半部 (从顶点到到最多"*"的为上半部,剩下的为下半部)
int num = int.Parse(Console.ReadLine());//转换用户输入的字符串格式的数字
for (int i = 1; i <= num; i++)//循环开始,可以讲 i 理解为行。既 i =1 时,打印输出第一行;i =2 时,打印输出第二行...
{
for (int j = 1; j <= num - i; j++)// j 可以理解为列,当 j = 1 是判断并打印第一列的情况,j = 2 时,判断并打印第二列的情况...
{
Console.Write(" ");
}
for (int j = 1; j <= i * 2 - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
//我们从上图中我们可以找到规律。上半部,第一行为1个"*",第二行为3个"*",第三行为5个"*",第四行为7个"*",我们能得出一个结论:当行数 为 i 时,"*" 的个数 (2*i-1) 个。与之相对的"*"前面的空格为 4-i (假设长度如上图的长度4)个。
那么上面的循环代码,我们就可以看明白了!
//菱形的下半部分
for (int i = 1; i <= num - 1; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write(" ");
}
for (int j = 1; j <= (num * 2 - 1) - 2 * i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
//下半部的倒三角形 我们要再做个循环。同样,从上图中知道规律。第一行为5个"*",第二行为3个"*",第三行为1个"*",于只想对应的 第一行有1个空格,第二行有2个空格,第三行有3个空格。所以规律为:当行数 为 i 时,空格的个数于 i 相等。
而"*"的为((4 * 2 -1)-2*i) 4 是 菱形的长度 。所以上面的循环也就不难理解了!i 循环 控制行数,j 循环控制 列中是打印 " ",还是打印"*"。
Console.ReadKey();
那么下面的代码,你能理解吗?
int num = int.Parse(Console.ReadLine());
for (int i = 1; i <= num; i++)
{
for (int j = 1; j <= num; j++)
{
if (i == 1 || i == num)
{
Console.Write("* ");
}
else if (j == 1 || j == num)
{
Console.Write("* ");
}
else
{
Console.Write(" ");
}
}
Console.WriteLine();
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/