第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 BigInteger 獲取錯(cuò)誤“變量 veryFar 可能尚未初始化”

使用 BigInteger 獲取錯(cuò)誤“變量 veryFar 可能尚未初始化”

慕田峪7331174 2022-12-21 13:01:38
我正在制作一個(gè)將數(shù)字轉(zhuǎn)換為文本的轉(zhuǎn)換器。我按照本網(wǎng)站中所說(shuō)的進(jìn)行了所有操作,并針對(duì)使用大整數(shù)進(jìn)行了編輯,但隨后顯示變量未初始化。我編輯了一些東西以使其與大整數(shù)兼容以獲得更大的數(shù)字,但它只是顯示變量 veryFar 可能未初始化。(我編輯了變量名來(lái)嘗試修復(fù)它?。?。package com.example.convertnumbertotext;import java.math.BigInteger;import java.text.DecimalFormat;public class EnglishNumberToWords {    private static BigInteger bi = new BigInteger("100");    private static BigInteger bi2 = new BigInteger("20");    private static BigInteger bi3 = new BigInteger("10");    private static final String[] tensNames = { "", " ten", " twenty", " thirty", " forty",            " fifty", " sixty", " seventy", " eighty", " ninety" };    private static final String[] numNames = { "", " one", " two", " three", " four", " five",            " six", " seven", " eight", " nine", " ten", " eleven", " twelve", " thirteen",            " fourteen", " fifteen", " sixteen", " seventeen", " eighteen", " nineteen" };    private static String convertLessThanOneThousand(BigInteger number) {        String veryFar;        BigInteger[] bii = number.divideAndRemainder(bi);        BigInteger[] bii2 = number.divideAndRemainder(bi3);        int resut = bii[1].compareTo(bi2);        if (resut == -1) {            veryFar = numNames[bii[1].intValue()];            number = number.divide(bi);        } else if (resut == 1 || resut == 0) {            veryFar = numNames[bii2[1].intValue()];            number = number.divide(bi3);            veryFar = tensNames[bii2[1].intValue()] + veryFar;            number = number.divide(bi3);        }        if (number.compareTo(BigInteger.valueOf(0)) == 0)            return veryFar;            return numNames[number.intValue()] + " hundred" + veryFar;    }}它顯示 2 條相同的錯(cuò)誤消息 - 錯(cuò)誤:變量 veryFar 可能尚未初始化 錯(cuò)誤:變量 veryFar 可能尚未初始化
查看完整描述

2 回答

?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊

修剪下來(lái),你有這個(gè)代碼:


String veryFar;

...

if (resut == -1) {

    veryFar = numNames[bii[1].intValue()];

    ...

} else if (resut == 1 || resut == 0) {

    veryFar = numNames[bii2[1].intValue()];

    ...

}

如果結(jié)果不是 -1、0 或 1,則不會(huì)執(zhí)行這些塊。在那種情況下,veryFar永遠(yuǎn)不會(huì)被賦值。


要么在聲明它時(shí)對(duì)其進(jìn)行初始化(如String veryFar = null),要么添加一個(gè)else為其賦值的案例。


查看完整回答
反對(duì) 回復(fù) 2022-12-21
?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

請(qǐng)注意,合同compareTo是返回<0, 0or >0, not -1 , 0or 1。


比較 -1 和 1 exactly 有時(shí)可能有效,但它通常不起作用(例如,它不適用于比較字符串),并且容易受到類內(nèi)部實(shí)現(xiàn)細(xì)節(jié)變化的影響。


因此,將您的條件更改為:


if (resut < 0) { // instead of == -1

  // ...

} else { // instead of == 0 || == 1

  // ...

}

然后你的變量將始終被初始化。


查看完整回答
反對(duì) 回復(fù) 2022-12-21
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)