午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 關(guān)于While,break的問(wèn)題

瀏覽:206日期:2023-12-10 13:03:01

問(wèn)題描述

請(qǐng)問(wèn)為什么這段代碼while循環(huán)內(nèi)一旦進(jìn)入了else后面部分,之后的while循環(huán)就無(wú)法再進(jìn)入前半個(gè)分支了?我看if 后面的條件應(yīng)該是滿(mǎn)足的啊,運(yùn)行結(jié)果由于進(jìn)入不了第一個(gè)循環(huán)就沒(méi)法break了。求大神指教:

public class SearchString {

public static void main(String[] args) { String s1 = 'abcaaaaaaaabcabc'; String s2 = 'abc'; int len = s2.length(); int pos = 0; int count = 0; while (true) {if (s1.indexOf(s2, pos) == -1) { System.out.println('Search Over, result count=' + count); break;} else { System.out.println('Position' + (count + 1) + ' is ' + pos); int a = pos + len; pos = s1.indexOf(s2, a); count++;} }}

}運(yùn)行結(jié)果就是-1 10 13 -1 10 13無(wú)限循環(huán)了

問(wèn)題解答

回答1:

因?yàn)楫?dāng)?shù)谌尾樵?xún)的時(shí)候 無(wú)法匹配到結(jié)果因此返回的值-1, indexOf()的第二個(gè)參數(shù)如果小于0的話(huà)將被當(dāng)作0處理。因此又開(kāi)始了第一次的循環(huán)。

你可以斷點(diǎn)調(diào)試下,結(jié)果很清楚

回答2:

當(dāng)進(jìn)入第二次循環(huán)的時(shí)候進(jìn)入了else,pos變?yōu)?3。下次的循環(huán)也就是當(dāng)進(jìn)入第三次循環(huán)的時(shí)候還是進(jìn)入了else。這次在else里面a變成了16,pos則為-1,下次的循環(huán)s1,indexOf(s2, pos)為0,還是進(jìn)入else了,所以產(chǎn)生了死循環(huán)。

我覺(jué)得你需要每次在else里面不要改變pos,而是要直接截s1字符串的后半部分。

標(biāo)簽: java
主站蜘蛛池模板: 免费在线观看www | 91视频在线观看网站 | 国产黄色一区 | 欧美一区二区在线观看视频 | 日本aⅴ在线观看 | 亚洲视频大全 | 日韩精品一区二区三区四区五区 | 精品国产一区二区在线观看 | 国产区二区 | 日韩成人免费视频 | 欧美人与性动交a欧美精品 免费国产a | 97视频网站 | 国产精品99久久久久久动医院 | 久久影视一区 | 国产成人精品综合 | 色撸撸网站 | 日本色网站 | 久久亚洲免费视频 | 国产区av| 91一区二区三区在线观看 | 久热只有精品 | 精品1卡二卡三卡四卡老狼 亚洲网在线观看 | 香蕉网在线 | 欧美精品一区二区三区四区 | 日本美女黄色一级片 | 美国一级片在线观看 | 深夜福利在线播放 | 中国成人毛片 | 国产99免费视频 | 久草视频在线免费播放 | 91视频导航 | 天天操天天草 | 欧美特级视频 | 黄色av免费看 | 日韩欧美高清 | av首页在线 | 精品久久久网站 | 成人福利视频在线 | 日本精品久久久久 | 精品欧美日韩 | 啪啪伊人 |