簡體   English   中英

為什么我總是得到字符 '?' 在 int 和 char 之間轉換時?

[英]Why do I always get the char '?' when converting between int and char?

我正在使用 Microsoft Visual C#:

Console.Write((char)((int)sentence[i] + random.Next(2) == 0 ? 1 : -1));

我正在嘗試 Console.Write 我在句子 [i] 的當前索引中擁有的字符,但隨機獲取其上方或下方的字符。 但是,相反,我總是得到字符“?”。 為什么?

您遇到了操作順序問題。 嘗試添加括號:

Console.Write((char)((int)sentence[i] + (random.Next(2) == 0 ? 1 : -1)));

沒有括號,它正在做:

(sentence[i] + random.Next(2)) == 0 ? 1:-1

...你可以看到它總是導致 1 或 -1。 鑒於 ASCII 字符范圍,它幾乎肯定總是導致 -1,這顯然不是可打印的字符,因此? 輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM