亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 變量已使用但從未賦值

C# 變量已使用但從未賦值

C#
一只萌萌小番薯 2022-06-19 16:49:35
所以我一直在研究一個程序,它計算輸入的數字的最接近和更大的 3 次方(如果輸入的數字是 20,那么結果是 27,因為 3^3=27)。但是由于我缺乏技能,我偶然發現了一個問題。似乎使用了變量 result 但從未分配過(即使它的值在 for 循環中分配給它)這是代碼:namespace ConsoleApp6{class Program{    static void Main(string[] args)    {        Console.Write("Enter a number: ");        int num = Convert.ToInt32(Console.ReadLine());        int result;        for(int i = num; (i * i * i) >= 0; i--)        {            result = i * i * i;        }        Console.WriteLine("Nest 3rd pow. is: " + result);        Console.WriteLine("Press any key to contiunue...");        Console.ReadLine();    } }}
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

評論可能已經解決了您的問題(您在創建它時沒有設置值result,編譯器可以預見沒有循環運行并且永遠沒有任何賦值的場景,但您總是使用它?!笆褂梦捶峙渚植孔兞俊卞e誤),但我想指出您的程序距離解決廣告中的問題還有一段距離,即找到比輸入數字更大的 int 立方體

為了解決這個問題,將輸入的數字立方根,將其四舍五入到下一個整數并將其立方

Math.Pow(Math.Ceiling(Math.Pow(num, 1.0/3.0)), 3.0);

就目前的情況而言,我不確定您要通過循環實現什么目標,并且看起來它將運行多次將結果設置為 0(它循環直到 i 為零,結果為 0) . 也許您打算從 2 開始 i 并遞增 i 直到結果大于 num,但這似乎比直接執行 calc 效率低


查看完整回答
反對 回復 2022-06-19
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

良好編程實踐的一個總體規則是在聲明中初始化一個變量。

編譯器錯誤表示您在result未分配時正在使用它。那是因為在您的情況下,for loop您無法預測它會至少迭代一次(因此在某些情況下,變量在沒有被分配的情況下被使用)。

如前所述,這可以通過初始化變量來解決(0 是標準)

int result = 0;


查看完整回答
反對 回復 2022-06-19
  • 2 回答
  • 0 關注
  • 282 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號