题目:绘制菱形,从控制台输入要绘制的菱形的行数,如果行数为偶数,输出“请输入奇数行!”;如果行数为奇数则按照要求绘制菱形。
样例输入1:
4
样例输出1:
请输入奇数行!
样例输入2:
5
样例输出2:
*
***
*****
***
*
方法1:输入偶数直接break跳出循环结束程序
using System;
namespace ConsoleApp4._7_5
{
class Program
{
static void Main(string[] args)
{
bool flag = false;
int number = 0;
while (flag == false)
{ //保证用户只能输入数字且只能为奇数
Console.Write(""); //请输入一个奇数
number = int.Parse(Console.ReadLine());
flag = true;
if (number % 2 == 0)
{
Console.WriteLine("请输入奇数行!");
flag = false;
}
break;
if (number % 2 == 1)
{
for (int i = 1; i <= number; i++)
{ //输出上半部分
if (i <= (number + 1) / 2)
{
for (int j = 1; 2 * (i + j) <= number + 1; j++)
{
Console.Write(" ");
}
for (int k = 0; k < 2 * i - 1; k++)
{
Console.Write("*");
}
Console.Write("\n");
}
else
{ //输出下半部分
int x = number - i + 1;
for (int j = 1; 2 * (x + j) <= number + 1; j++)
{
Console.Write(" ");
}
for (int k = 0; k < 2 * x - 1; k++)
{
Console.Write("*");
}
Console.Write("\n");
}
}
}
}
}
方法2:利用try catch方法 保证用户只能输入数字且只能为奇数
static void Main(string[] args)
{
bool flag = false; int number = 0;
while (flag == false)
{ //保证用户只能输入数字且只能为奇数
try
{
Console.WriteLine("请输入一个奇数");
number = int.Parse(Console.ReadLine());
flag = true;
if (number % 2 == 0)
{
Console.WriteLine("只允许输入奇数!!");
flag = false;
}
}
catch
{
Console.WriteLine("你输入的不是数字请重新输入!");
flag = false;
}
}
for (int i = 1; i <= number; i++)
{ //输出上半部分
if (i <= (number + 1) / 2)
{
for (int j = 1; 2 * (i + j) <= number + 1; j++)
{
Console.Write(" ");
}
for (int k = 0; k < 2 * i - 1; k++)
{
Console.Write("*");
}
Console.Write("\n");
}
else
{ //输出下半部分
int x = number - i + 1;
for (int j = 1; 2 * (x + j) <= number + 1; j++)
{
Console.Write(" ");
}
for (int k = 0; k < 2 * x - 1; k++)
{
Console.Write("*");
}
Console.Write("\n");
}
}
// Console.ReadKey();
}
}
}
运行结果: