while循環
- while 循環文法結構
<script>
while (條件表達式) {
// 循環體
}
</script>
- 執行思路 當條件表達式結果為true 則執行循環體 否則 退出循環
- 如果在循環體中不改變變量的值,那麼将陷入死循環
<script>
//程式将陷入死循環
var i = 1;
while (i <= 100) {
console.log(i);
}
</script>
- while循環案例:
<script>
//練習1
var username = prompt("請輸入使用者名:");
var pwd = prompt("請輸入密碼:");
while (username != "admin" || pwd != "8888") {
alert("請重新輸入使用者名或密碼!");
username = prompt("請輸入使用者名:");
pwd = prompt("請輸入密碼:");
}
alert("恭喜你,登入成功!");
//練習2
var a = 1;
while (a >= 1 && a <= 50) {
if (a % 2 != 0) {
console.log(a);
} else {
}
a++;
}
</script>
注意事項:
- 因為while循環是先判斷循環條件的,是以while循環的最小執行次數為0
- while循環之是以能夠結束是因為每次循環執行的過程中都會改變循環變量
- 執行while循環之前,必須給循環變量賦初值
- 和if條件語句一樣,如果while循環體中隻有一條語句,那麼大括号可以不寫
- while循環結構末尾不需加分号
do…while循環
- 文法結構
<script>
do {
// 循環體
} while (條件表達式);
</script>
- 執行思路 跟while不同的地方在于 do while 先執行一次循環體 在判斷條件 如果條件表達式結果為真,則繼續執行循環體,否則退出循環
- do…while案例
<script>
//随機兩個變量,dx和dy,它們都在[-4,4]之間随機取值,都是不能都為0
do {
var dx = parseInt(Math.random() * 9) - 4;
var dy = parseInt(Math.random() * 9) - 4;
} while (dx == 0 && dy == 0)
console.log(dx, dy);
var total = 0;
var i = 1;
do {
total += i;
i++;
} while (i <= 100);
alert(total);
</script>
for 循環
- 文法結構
<script>
for (初始化變量; 條件表達式; 操作表達式) {
//循環體
}
</script>
- 初始化變量 就是用var聲明一個普通變量 通常用于作為計數器使用
- 條件表達式 就是用來決定每一次循環是否繼續執行,就是終止的條件
- 操作表達式 是每次循環最後執行的代碼 經常用于我們計數器變量進行更新(遞增或遞減)
- for循環案例
<script>
//兔子問題 1 1 2 3 5 8 13 21...(斐波納契數列)
var n1 = 1;
var n2 = 1;
var t = 0;
for (i = 1; i <= 20; i++) {
t = n2;
n2 = n1 + n2;
n1 = t;
}
alert(n2);
//列印正方形
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= 9; j++) {
document.write("★");
}
document.write("<br>");
}
//列印三角形
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
document.write("★");
}
document.write("<br>");
}
// 彈出輸入框輸入總的班級人數(num)
// 依次輸入學生的成績( 儲存起來 score), 此時我們需要用到
// for 循環, 彈出的次數跟班級總人數有關系 條件表達式 i <= num
// 進行業務處理: 計算成績。 先求總成績( sum), 之後求平均成績( average)
// 彈出結果
var num = prompt('請輸入班級的總人數:'); // num 總的班級人數
var sum = 0; // 求和的變量
var average = 0; // 求平均值的變量
for (var i = 1; i <= num; i++) {
var score = prompt('請您輸入第' + i + '個學生成績');
// 因為從prompt取過來的資料是 字元串型的需要轉換為數字型
sum = sum + parseFloat(score);
}
average = sum / num;
alert('班級總的成績是' + sum);
alert('班級平均分是:' + average);
//列印倒三角
var str2 = '';
for (var i = 1; i <= 10; i++) { //控制行數
for (var j = i; j <= 10; j++) {
str2 += '★';
}
str2 += '\n';
}
console.log(str2);
var alt = "";
for (var i = 1; i <= 5; i++) { // 控制行
var blank = " ";
for (var j = 1; j < 5 - i; j++) { //列印空白三角形
blank += " ";
}
var start = "*";
for (var m = 1; m < 2 * i - 1; m++) { //列印五角星
start += "*";
}
alt += blank + start + "\n";
}
console.log(alt);
</script>
拓展–增強for循環
- 文法結構
<script>
for(var 變量名 in 容器){
循環體;
}
</script>
- 案例:
<script>
var arr = [1, 2, 3, 4, 5];
for (var i in arr) {
console.log(arr[i]);
}
</script>
break和continue
- break用于跳出代碼塊或循環,循環終止
- continue用于立即終止本輪循環,傳回到循環結構的頭部,開始下一輪循環,循環不終止
循環語句--while循環、do...while循環、for 循環、增強for循環、break和continue 循環語句--while循環、do...while循環、for 循環、增強for循環、break和continue