08 循环
分支結構 ?if、if-else 、if-else if else if......else、switch-case
循環 ?while循環、for循環
單分支 ?
? 只有一個分支用 if
? 有兩個分支用if-else
? 多分支范圍類if-else if......else
? 多分支具體值switch-case
需求:計算1-100之間所有整數和(5050)
? ? //定義一個變量
? ? var sum = 0; //存儲和
? ? var i = 1; //初始值
? ? while(i <= 100){
? ? ? ? ? ? ? ? ? ? sum += i; //sum = sum + i
? ? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? ? ?}
? ? console.log("1-100的和為" + sum);
需求:計算1-100之間的偶數和
? ? ?var sum = 0;
? ? ?var i = 1;
? ? ?while(i <= 100){
? ? ? ? ? ? ? ? ? ? ?if(i % 2 == 0){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sum += i;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ? ? ?i++;
? ? ? ? ? ? ? ? ? ? }
? ? console.log(sum); ? ? ??
do-while循環
? ? do{
? ? ? ?代碼塊;
? ? ? }while(條件);
需求:計算1-100的和
? ? var sum = 0;
? ? var i = 1;
? ? do{
? ? ? ?sum += i;
? ? ? ?i++;
? ? ? }while(i <= 100);
? ? console.log(sum);
注:while結束一定要加分號;
需求:求100以內3的倍數的和
? ? var sum = 0;
? ? var i = 1;
? ? do{
? ? ? ?if(i % 3 == 0){ //判斷是否為3的倍數
? ? ? ? ? ? ? ? ? ? ? sum += i; //和
? ? ? ? ? ? ? ? ? ? ?}
? ? ? ?i++; //自加計數
? ? ? }while(i <= 100); //100以內
? ? console.log(sum);
需求:"你覺得我帥嗎?"提示用戶請輸入Y/N,如果是N就一直問,輸入Y則結束并提示"您真有眼光"
? ? do{
? ? ? ?var result = prompt("您覺得我帥嗎? Y/N");
? ? ? }while(result != "Y");
? ? console.log("您真有眼光");
? ??
for循環
? ? for(初始化表達式1;條件表達式2;自增表達式3){
? ? ? ?循環體;
? ? }
首先執行初始化表達式1,其次判斷條件表達式2,如果條件表達式2不成立,則直接跳出整個循環體,如果條件表達式2成立,則執行循環體,執行完循環體之后,再去執行自增表達式3,再去判斷是否成立,以此類推
需求:輸出0-5之間的數字
? ? for(var i = 0; i <= 5; i++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log(i);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
需求:輸出一句話10次
? ? for(var i = 0; i <= 10; i++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? console.log("哈哈" + (i+1));
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
需求:求1-5的和
? ? var sum = 0;
? ? for(var i = 0; i <= 5; i++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sum += i; //sum = sum + i
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}
? ? console.log("1-5的和" + sum);
注:輸出在循環的外面
需求:打印5個☆
? ? for(var j = 0; j < 5; j++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?document.write("☆");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? document.write("<br/>");
需求:打印5行5列的☆
? ? for(var i = 0; i < 5; i++){
? ? ? ?for(var j = 0; j < 5; j++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?document.write("☆");
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ?document.write("<br/>");
? ? }
行的for循環里包含了列的for循環
練習
需求:求1-100之間所有數的和
? ? var sum = 0;
? ? for(var i = 0; i <= 100; i++){
? ? ? ?sum += i;
? ? }
? ? console.log("1-100的和為" + sum);
需求:求1-100之間的偶數和
? ? var sum = 0;
? ? for(var i = 0; i <= 100; i++){
? ? ? ?if(i % 2 == 0){
? ? ? ? ?sum += i;
? ? ? ?}
? ? }
? ? console.log("1-100之間的偶數和為" + sum);
需求:求1-100之間的奇數和
? ? var sum = 0;
? ? for(var i = 0; i <= 100; i++){
? ? ? ?if(i % 2 != 0){
? ? ? ? ?sum += i;
? ? ? ?}
? ? }
? ? console.log("1-100之間的奇數和為" + sum);
需求:求1-100之間的所有數的和的平均值
? ? var sum = 0;
? ? for(var i = 0; i <= 100; i++){
? ? ? ?sum += i;
? ? }
? ? console.log("1-100之間的數的和的平均值" + (sum / 100));
需求:同時求1-100之間的所有偶數、奇數和
? ? var oddNum = 0; //存儲奇數
? ? var evenNum = 0; //存儲偶數
? ? for(var i = 1; i <= 100; i++){
? ? ? ?if(i % 2 == 0){ //判斷為偶數
? ? ? ? ?evenNum += i;
? ? ? ?}else{ //剩下的為奇數
? ? ? ? oddNum += i;
? ? ? ?}
? ? }
? ? console.log("奇數和為" + oddNum);
? ? console.log("偶數和為" + evenNum);
需求:1-100里3的倍數和
? ? var sum = 0; //存儲和
? ? for(var i = 0; i <= 100; i++){
? ? ? ?if(i % 3 == 0){ //判斷為3的倍數
? ? ? ? ?sum += i; //相加
? ? ? ?}
? ? }
? ? console.log(sum);
需求:☆
? ? ?☆☆
? ? ?☆☆☆
? ? ?☆☆☆☆
? ? ?☆☆☆☆☆
? ? for(var i = 0; i < 5; i++){ //控制行 i本身在遞增
? ? ? ?for(var j = 0; j <= i; j++){ //控制列 因為每行遞加所以j要跟隨i的變化來
? ? ? ? ? document.write("☆");
? ? ? ?}
? ? ? ? ? document.write("<br/>");
? ? }
需求:9*9乘法表
? ? for(var i = 1; i <= 9; i++){ //控制行 i本身在遞增
? ? ? ?for(var j = 1; j <= i; j++){ //控制列 因為每行遞加
? ? ? ? ? document.write(j+"*"+i+"="+i*j); //打印樣式
? ? ? ?}
? ? ? ?document.write("<br />");
? ? }
注:控制行的循環里包含了控制列的循環。控制行的循環每判斷一次控制列的循環都要從初始值進行重新判斷。這才能使得每行遞加且符合9*9乘法表,即控制行的循環判斷了9次而進行控制列的循環則判斷了81次。
總結
- 上一篇: java是最简单的语言吗_Java不是最
- 下一篇: 理解overflow:hidden