namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = int.Parse(Console.ReadLine());
switch (i)
{
case 1:
for (i = 1; i <= 10; i++)
{
Console.WriteLine(1+"*"+i+"="+i*1);
}
break;
}
Console.ReadKey();
}
}
}
-5
A
回答
-1
据我所知,您可以使用此代码转换为int。 (没有测试你的例子)。
switch (i)
{
case 1:
for (i = 1; i <= 10; i++)
{
int Val = Int32.Parse(1+"*"+i+"="+i*1);
Console.WriteLine(Val);
}
break;
}
Console.ReadKey();
}
或更好,您可以使用(Int32.TryParse),如果转换成功,则返回true。
switch (i)
{
case 1:
for (i = 1; i <= 10; i++)
{
int Val;
if (Int32.TryParse(1+"*"+i+"="+i*1, out Val))
{
// TryParse returns true if the conversion succeeded.
}
}
break;
}
Console.ReadKey();
}
+0
调用Int32.Parse(1 +“*”+ i +“=”+ i * 1)实际上是在说'将字符串1 * 1 = 1转换为Int32',这会抛出一个解析异常。 – Alex
0
从文章的标题,我猜你的错误来了,从那里你正在阅读的控制台输入,而不是从那里你写的结果(你还没有很明确的错误被抛出的地方。堆栈跟踪可能很有用)。
当您获取用户输入进行解析时,您最好将该值分配给一个字符串,然后使用TryParse,而不仅仅是解析。
String inString = Console.ReadLine();
int i = 0;
bool parsedNumber = Int32.TryParse(inString, out i);
if (parsedNumber) {
//Do Something with your lovely new Int32
}
或者,您可以使用try/catch块。
String inString = Console.ReadLine();
try {
i = Int32.Parse(inString);
//Do something with your int here
} catch (Exception ex) {
//Not a number
}
如果我理解你的要求,你希望你的输出是这个样子......
1 * 1 = 1
1 * 2 = 2
...等等。
如果是这样,您最好计算总和的乘积,并使用字符串生成器将输出放在一起。
for (i = 1; i <= 10; i++)
{
int res = i * 1;
StringBuilder sb = new StringBuilder();
sb.Append("1 * ").Append(i).Append(" = ").Append(res);
Console.WriteLine(sb.ToString());
}
使用的WriteLine过载马克的回答是完全有效的也一样,会是以下使用的String.Format
String outString = String.Format("1*{0}={1}", i, i*1);
Console.WriteLine(outString);
的使用为Console.WriteLine过载马克顾名思义就是干净的代码,但通过使用String.Format,可以在写入之前检查字符串的值。
有几种方法可以实现这种格式。根据你想要达到的目标,一个可能比另一个更合适。
相关问题
- 1. 不能隐式地将类型字符串转换为System.Windows.Forms.Datagridviewcell c#
- 2. ASP.NET C#“不能隐式地将类型'字符串'转换为'int'”错误
- 3. 不能隐式地将类型'字符串'转换为'namespace.class'
- 4. 不能隐式地将类型“字符串”转换为“Windows.Security.Credentials.PasswordCredential”
- 5. 不能隐式地将类型'字符串'转换为'System.Web.UI.WebControls.Unit'
- 6. 不能隐式地将类型'字符串'转换为'System.DateTime'
- 7. 不能隐式地将类型'字符串'转换为'int'c#
- 8. 不能隐式地将int类型转换为int []
- 9. 不能隐式地使用C#将类型'字符串'转换为'byte []'
- 10. C#StreamWriter不能隐式地将类型转换为字符串到SYSTEMS.IO
- 11. 不能隐式转换类型为int
- 12. 错误“无法将类型'int'隐式转换为'字符串'”
- 13. 无法将int类型隐式转换为字符串
- 14. 不能隐式地将类型'int'转换为'bool'[
- 15. 不能隐式地将类型'void'转换为System.Action <int>
- 16. 不能隐式地将void类型转换为IList <int>
- 17. 不能将类型'System.Data.Common.DbDataReader'隐式转换为'字符串'
- 18. 不能将类型'字符串'隐式转换为'char'
- 19. 不能隐式地将类型'地址'转换为'字符串'设置器
- 20. 将字符串类型转换为int
- 21. C#为什么我不能隐式地将类型'字符串'转换为'System.Collections.Generic.List <int>'?
- 22. CS0029 C#'不能隐式地将字符串[]转换为字符串'
- 23. 不能隐式地将类型转换为另一个类C#
- 24. 无法将类型'字符串'隐式转换为'字符串'
- 25. C++隐式类型转换字符串 - > int?
- 26. 不能隐式地将类型“字符串”转换为“LINQ to SQL中的System.Data.Linq.Binary”
- 27. 错误不能隐式地将类型'字符串'转换为'System.DateTime'返回
- 28. 错误CS0029:不能隐式地将类型`字符串'转换为`UnityEngine.UI.Text'
- 29. 不能在C#中将类型'字符串'隐式转换为'System.Web.HtmlString'?
- 30. 不能类型“字符串”隐式转换为“INT”出于某种原因
欢迎来到Stack Overflow。我没有看到这个代码部分有什么问题。你可以请更具体吗?例如,哪一行?请阅读[FAQ]和[ask]作为开始.. –
所以你想要一个整数的值为'1'到一个包含星号的字符串,并将'i'的当前值添加到...?您需要选择_one_数据类型,例如'string',并连接各种子串,例如'i.ToString()',以达到你的结果。 – HABO
你的问题解决了吗?您没有按要求提供更多信息,也未接受答案。如果您的问题已解决,请告诉我们。 – Alex