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. Unity3D C# - 不能隱式地將類型`字符串'轉換爲`int'
- 4. 無法將類型'int'隱式轉換爲'字符串'C#類
- 5. 不能隱式地將類型字符串轉換爲字節[]
- 6. 不能隱式地將類型bool轉換爲字符串
- 7. 不能隱式地將類型'字符串'轉換爲'namespace.class'
- 8. 不能隱式地將類型'字符串'轉換爲'System.Web.UI.WebControls.Unit'
- 9. 不能隱式地將類型字符串轉換爲microsoft.sqlserver.dts.runtime.variable
- 10. 不能隱式地將類型'字符串'轉換爲'System.DateTime'
- 11. 不能隱式地將類型'字符串'轉換爲'System.Web.UI.WebControls.Label'
- 12. 不能隱式地將類型「字符串」轉換爲「Windows.Security.Credentials.PasswordCredential」
- 13. 不能隱式地將類型'字符串'轉換爲'int'c#
- 14. 不能隱式地將類型'字符串'轉換爲'bool'CheckBox
- 15. 不能在C#中將類型字符串隱式轉換爲int#
- 16. 不能隱式地將int類型轉換爲int []
- 17. 不能隱式地使用C#將類型'字符串'轉換爲'byte []'
- 18. C#StreamWriter不能隱式地將類型轉換爲字符串到SYSTEMS.IO
- 19. 不能隱式轉換類型爲int
- 20. 不能隱式轉換類型int?以字符串[]
- 21. 無法將類型字符串隱式轉換爲int
- 22. 錯誤「無法將類型'int'隱式轉換爲'字符串'」
- 23. 無法將int類型隱式轉換爲字符串
- 24. 無法將類型'字符串'隱式轉換爲'int'
- 25. 不能將字符串隱式轉換爲字符串[]。在c#
- 26. 不能隱式地將類型'int'轉換爲LittleEndian ByteOrder
- 27. 不能隱式地將void類型轉換爲IList <int>
- 28. 不能隱式地將類型'void'轉換爲System.Action <int>
- 29. 不能隱式地將類型'int'轉換爲'bool'[
- 30. 不能隱式轉換類型'int?' 'int'
歡迎來到Stack Overflow。我沒有看到這個代碼部分有什麼問題。你可以請更具體嗎?例如,哪一行?請閱讀[FAQ]和[ask]作爲開始.. –
所以你想要一個整數的值爲'1'到一個包含星號的字符串,並將'i'的當前值添加到...?您需要選擇_one_數據類型,例如'string',並連接各種子串,例如'i.ToString()',以達到你的結果。 – HABO
你的問題解決了嗎?您沒有按要求提供更多信息,也未接受答案。如果您的問題已解決,請告訴我們。 – Alex