我是一名学生,我得到了一份功课,我需要一些小帮助=)
编写一个应用程序,提示用户输入一个正方形的大小并显示一个方形的星号,其边与输入的整数相等。您的应用程序适用于从2到16的边长。如果用户输入的数字小于2或大于16,则应用程序应分别显示大小为2或16的正方形,并显示错误消息。
start:
int x;
string input;
Console.Write("Enter a number between 2-16: ");
input = Console.ReadLine();
x = Int32.Parse(input);
Console.WriteLine("\n");
if (x <= 16 & x >= 2)
{
control statement
code
code
code
}
else
{
Console.WriteLine("You must enter a number between 2 and 16");
goto start;
}
...在“if”控件中使用什么控制语句(if,for,while,do-while,case,boolean)。
我的想法就像......
我是否编写了一个代码,用于为输入的每种类型的数字写出框?那是很多代码......
..必须有一个代码包含一些可以为我完成任务的“变量++”,但是哪个控制语句最适合该任务?
但是如果我使用“变量++”我应该如何在输出中写入空格,因为毕竟它必须是一个SQUARE?!?! =)
我喜欢一些关于使用什么类型的陈述的建议,或者只是提示,当然不是整个解决方案,因为我是学生!
答案 0 :(得分:4)
这不是您正在寻找的答案,但我确实有一些清洁代码的建议:
x
)。x
(在C#中查看default
以进行默认实例化...默认情况下,这是很好的信息,但这是很好的信息),但是字符串不需要。goto
:)对于这段代码,最好打破处理值的代码并返回需要绘制到单独方法中的内容并使main方法只是坐下来等待输入。但要注意硬无限循环。编写干净且可维护的代码永远不会太早,即使它只是用于永远不需要维护的家庭作业:)
答案 1 :(得分:1)
您不必为输入的每种类型的数字编写代码。相反,您必须使用循环(for
关键字)。
可能我必须停在这里让你做这项工作,但我只是给出一个提示:你可能想要用两个循环来做,一个嵌入另一个。
我还注意到了一些我想在你的代码中发表评论的事情:
Int32.Parse
:不要使用Int32
,而是int
。它不会改变代码的含义。我不会解释为什么你必须使用int
:这很难解释,你以后肯定会理解它。goto
声明,除非您被老师告知在当前案例中使用它。Console.WriteLine("\n");
:避免“\ n”。它取决于平台(在这里,Linux / Unix;在Windows上它是“\ r \ n”,在MacOS上 - “\ n \ r”)。请改用Environment.NewLine
。x <= 16 & x >= 2
:为什么&
而不是||
?string input = Console.ReadLine();
而不是string input;
后跟input = Console.ReadLine();
。答案 2 :(得分:1)
既然是家庭作业,我们就无法给你答案。但这里有一些提示(假设固体*,而不是中间的空格):
for (int...
您当前的错误检查不符合规格。再次阅读规范。
如果有人输入不可解析的整数,你将抛出异常。
在转入喇叭裤之前,goto的风格已经过时了。你实际上不需要任何外部控制来获得你所获得的规格,因为它是“一次又一次”。通常,您可以编写一个这样的简单控制台应用程序来查找特殊值(例如-1),并在看到该值时退出。在这种情况下,您将使用while (!<end of input>)
作为外部控制流。
答案 3 :(得分:1)
如果x大于或等于16,为什么不给它指定16(因为你最终需要绘制一个长度为16的正方形)(并添加一个适当的消息)?
答案 4 :(得分:0)
控制声明是:
for (int i = 0; i < x; i++)
{
for ( int j = 0; j < x; j++ )
{
Console.Write("*");
}
Console.WriteLine();
}
这应该用X方形的星号打印X! 我是老师,我不久前给同学们留了同样的任务,我希望你不是其中之一! :)