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

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么會重復檢索同一個字符串呢?

<!DOCTYPE html>

<html>

?<head>

? <title> 事件</title> ?

? <script type="text/javascript">

?var str="hello world!ol ol ol ol ol olc"


?var con=0;

?for(i=0;i<7;i++){

? ? ? cin=str.indexOf("o",con);

?if(con!=str.length-1){

? ? ? con=con+1;

?}

?else{break;}

?document.write(cin);

?}


</script>

?</body>

</html>


正在回答

5 回答

把? con=con+1改成con=cin+1就行了

1 回復 有任何疑惑可以回復我~
<!DOCTYPE?html>
<html>
?<head>
??<title>?事件</title>??
??<script?type="text/javascript">
	?var?str="hello?world!ol?ol?ol?ol?ol?olc"
	?var?cin;
	?var?con=0;
	?for(i=0;i<7;i++){
		??cin=str.indexOf("o",con);
	?if(con!=str.length-1){
		??con=con+1;
	?}
	?else{break;}
	?}
	document.write(cin);
</script>
?</body>
</html>


0 回復 有任何疑惑可以回復我~

for循環里面從0開始檢索,檢索到第一個o在4,輸出4,滿足不等于檢索值的條件,0+1從1開始找,又找到o在4,輸出4,還是不滿足等于檢索值的條件,1+1從2開始找,一直到con=5開始找下一個,找到o在7,輸出7,滿足不等于檢索值的條件,5+1從6開始找,找到o在7,輸出7,6+1=7不滿足for語句里面的i<7的條件,循環結束。

電腦要是知道你怎么想的一定會說:媽的智障

1 回復 有任何疑惑可以回復我~
#1

作孽的賭徒_

所以輸出是4444477
2017-09-16 回復 有任何疑惑可以回復我~
#2

作孽的賭徒_

想改正其實很簡單,把document.write(sin)放到循環外面就行了,輸出的值就是7了
2017-09-16 回復 有任何疑惑可以回復我~
#3

作孽的賭徒_

而且你這個循環寫的是尋找最后一個o的位置,如果你把i<7改成str.length或者str.length-1就會發現輸出是-1,改成str.length-2就會發現輸出是27.因為str.length 不存在,而str.length-1滿足if判斷條件里的else,直接就中斷了,沒有值輸出。
2017-09-16 回復 有任何疑惑可以回復我~

想要學習JavaScript, 最好先學習一下JavaSE的基礎啊,里面的語法都差不多啊.

0 回復 有任何疑惑可以回復我~
#1

qq_彼岸花開想念莫離_0 提問者

這樣子好嗎?
2017-09-10 回復 有任何疑惑可以回復我~

因為你寫了循環啊。。。。

0 回復 有任何疑惑可以回復我~
#1

qq_彼岸花開想念莫離_0 提問者

我意思是一直重復同一個O,不是應該下一個O嗎?
2017-09-10 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么會重復檢索同一個字符串呢?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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