循環輔助語句
break:跳出所在的switch 或者循環結構。
案例:判斷素數
var n = Number(prompt("請輸入一個自然數:"));
var m = Math.ceil(Math.sqrt(n));//根據相關數學定理,查找範圍可縮減至{2,sqrt(n)}
var found = false;//找到因子的標記
for (vari = 2; i <=m; i++){
if (n % i == 0) {
found =true;
break;
}
}
alert(found?”不是素數”:”是素數”);
對100以內既不是3的倍數也不是5的倍數的數求和
* 思路一:
* (1)對{1,100}範圍內逐個判斷
* (2)如果滿足條件就累加
* (3)輸出和
* */ 常規思路,對滿足條件的數累加
var sum = 0;
for(var n = 1; n <= 100;n++){
if(n%3 != 0 && n%5 !=0){
sum+=n;
}
}
alert(sum);
思路二:
* (1)對{1,100}範圍內每個數重複步驟2,3
* (2)如果滿足條件就放過
* (3)累加
* (3)輸出和
將範圍內不滿足條件的跳過,其餘的累加。
continue:結束本次循環,然後開啓下一次循環
var sum = 0;
for (var n = 1; n <=100; n++) {
if (n % 3 == 0 || n % 5 == 0) {
continue;//結束本次循環
}
sum +=n;
}
alert(sum);
思路二的好處:結構清晰,也就是我們在進行數據處理之前,先把各種不符合條件的情況先排除,然後再處理符合條件的情況(這個一般是程序的主體)
如果循環體的主體代碼的執行有兩個前提條件,常規思路是這樣寫的:
for(….){
if(條件1){
if(條件2){
循環體主體代碼(可能代碼較多)
}else{
alert(“錯誤提示2”)
}
}else{
alert(“錯誤提示2”)
}
}
換另外一種思路來描述,是這樣的
for(…){
if(!條件1){
alert(“錯誤提示1”)
continue;
}
if(!條件2){
alert(“錯誤提示2”)
continue;
}
循環主體代碼
}
循環嵌套
爲什麼有循環的嵌套?
因爲一件事情的內容需要重複做。而且這個事情要反覆做。
什麼時候用循環的嵌套?
兩者沒有直接關係:
一般有行數有列數並且兩者之間存在關係的時候用循環的嵌套。
比如直角三角形的輸出
for(var i= 1;i <= 4;i++){
for(j=1;j<i+1; j++){
document.write("*");
}
document.write("<br>");
}
等腰三角形的輸出:
for(var i= 1;i <= n;i++){
for(var j=n-i;j>0; j--){
document.write("_");
}
for(var k =1;k<2*i-1;k++){
document.write("*");
}
document.write("<br>")
}