JS基础- 分支和循环

一. isNaN函数 : 是否是一个非数字

is NaN : is not a Number

var str = "hello";

​    var  str = "123";

​    var res = isNaN(str);  // 判断 str 是否是一个非数字

​    console.log(res);  // 不是数字就是true  否者就是false

不是数字就是true 是数字是false

判断一个字符串是否是数字 ,如果是数字就返还true 否者就返还false

  var str = prompt("请输入字符");
        if(!isNaN(str)){  //    使用的时候会取反 
            console.log("是数字")
        }else{
            console.log("不是一个数字")
        }

二.分支结构 if

一.if 语句

  • 通过一个 if 语句来决定代码执行与否

  • 语法: if (条件) { 要执行的代码 }

  • 通过 () 里面的条件是否成立来决定 {} 里面的代码是否执行

    如果条件是 true 那么就执行 大括号里的代码 ,如果是false 就不执行

    简写形式 : 如果代码只有一行的时候,可以省略 if后面的大括号

// 条件为 true 的时候执行 {} 里面的代码
if (true) {
  alert('因为条件是 true,我会执行')
}

// 条件为 false 的时候不执行 {} 里面的代码
if (false) {
	alert('因为条件是 false,我不会执行')    
}

二。if else 语句

  • 通过 if 条件来决定,执行哪一个 {} 里面的代码

  • 语法: if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }

  • 两个 {} 内的代码一定有一个会执行

else 里就是 if 非得if条件里是否执行的内容 else 就是和 if 里的条件相反的;

### 二。if else 语句

-  通过 if 条件来决定,执行哪一个 `{}` 里面的代码 
-  语法: `if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }` 
-  两个 `{}` 内的代码一定有一个会执行 

 else 里就是 if 非得if条件里是否执行的内容  else 就是和 if 里的条件相反的;

在2种状态中切换

 <button class="btn">点击</button>
    <script>
        var btn = document.querySelector(".btn");
        var flag = true;
        var num = 1;
        btn.onclick = function () {
            flag = !flag;
            // console.log("onclick执行了",flag);
            if (num === 1) {
                if (flag) {
                    console.log("if执行了");
                } else {
                    console.log("else执行了");
                }
            }
        }
        </script>

练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    请输入年龄: <input type="text" class="age" /><br/>
    <button class="btn">确定</button>
    <script>
        // 获取标签元素
        var ageEle = document.querySelector(".age");
        var btnEle = document.querySelector(".btn");
        btnEle.onclick = function(){
            // 获取输入的年龄 
            // 1.判断输入的时候是数字 2.判断年龄是否 大于等于18
            var age = ageEle.value;
            // 判断是否是一个数字
             if(!isNaN(age)){
                // 是一个数字
                // 判断是否大于等于18岁
                if(age>=18){
                    console.log("可以上网");
                }else{
                    console.log("不能上网");
                } 
             }else{
                // 不是一个数字
                // 给一个提示
                alert("输入错误,请输入数字");
             }
        }
    </script>
</body>
</html>

三。if else if ... 语句

1.if else : 只能处理 2种情况

2.多种情况 可以 通过 else if 来判断 ,可以有一个 也可以有多个

  • 可以通过 if 和 else if 来设置多个条件进行判断

  • 语法:if (条件1) { 条件1为 true 的时候执行 } else if (条件2) { 条件2为 true 的时候执行 }

  • 会从头开始依次判断条件

  • 如果第一个条件为 true 了,那么就会执行后面的 {} 里面的内容

  • 如果第一个条件为 false,那么就会判断第二个条件,依次类推

  • 多个 {} ,只会有一个被执行,一旦有一个条件为 true 了,后面的就不在判断了

// 第一个条件为 true,第二个条件为 false,最终会打印 “我是代码段1”
if (true) {
  alert('我是代码段1')
} else if (false) {
	alert('我是代码段2')           
}
// 第一个条件为 true,第二个条件为 true,最终会打印 “我是代码段1”
// 因为只要前面有一个条件满足了,就不会继续判断了
if (true) {
  alert('我是代码段1')
} else if (true) {
  alert('我是代码段2')
}
// 第一个条件为 false,第二个条件为 true,最终会打印 “我是代码段2”
// 只有前一个条件为 false 的时候才会继续向后判断
if (false) {
  alert('我是代码段1')
} else if (true) {
  alert('我是代码段2')
}
// 第一个条件为 false,第二个条件为 false,最终什么也不会发生
// 因为当所有条件都为 false 的时候,两个 {} 里面的代码都不会执行
if (false) {
  alert('我是代码段1')
} else if (false) {
  alert('我是代码段2')
}

四。if else if … else 语句

  • 和之前的 if else if ... 基本一致,只不过是在所有条件都不满足的时候,执行最后 else 后面的 {}

// 第一个条件为 false,第二个条件为 false,最终会打印 “我是代码段3”
// 只有前面所有的条件都不满足的时候会执行 else 后面的 {} 里面的代码
// 只要前面有一个条件满足了,那么后面的就都不会执行了
if (false) {
  alert('我是代码段1')
} else if (false) {
  alert('我是代码段2')
} else {
  alert('我是代码段3')
}
var userName = prompt("请输入名字");
        if(userName === "张三"){
            console.log("穿红色的衣服");
        }else if(userName === "李四"){
            console.log("穿蓝色衣服");
        }else if(userName === "王五"){
            console.log("穿黄色衣服");
        }else{
            // 除了上述情况之外的所有情况
            console.log("名字未找到");
        }
范围判断

范围的条件判断:js不支持连写 类似 0<a<10 这种写法;可以使用 逻辑运算符 && 连接

一个条件在某个范围之内

//分数判断 : 小于60分 不及格  大于等于60分 及格  , 60-70 一般  70 - 80 良好  80以上 优秀

 var score = prompt("请输入分数");
        if(score<60){
            console.log("不及格")
        }else{
            // 大于等于60;
            // 错误的写法
            // if(60<=score<70){
            //     console.log("一般")
            // }else if(70<=score<80){
            //     console.log("良好")
            // }else {
            //     console.log("优秀")
            // }

            // 正确的写法
            if(60<=score && score<70){
                console.log("一般")
            }else if(70<=score &&  score<80){
                console.log("良好")
            }else {
                console.log("优秀")
            }
        }

练习:输入一个数字 判断 数字是否是 1-10之间的数 且判断 是奇数还是偶数;

 var num = prompt("请输入一个数字");
          if(1<num && num<10){
            // num 的值在 1和 10 之间
            if(num%2===0){
                document.write("<h1>"+num+"是一个偶数</h1>");
            }else{
                document.write("<h1>"+num+"是一个奇数</h1>");
            }

          }else{
            alert(num+"不在1和10之间,请重新输入");
          }

三。SWITCH 条件分支结构

  • 也是条件判断语句的一种

  • 是对于某一个变量的判断

  • 语法:

switch (要判断的变量) {
  case 情况1:
    情况1要执行的代码
    break
  case 情况2:
    情况2要执行的代码
    break
  case 情况3:
    情况3要执行的代码
    break
  default:
    上述情况都不满足的时候执行的代码
}

switch case 也是分支语句 , 可以替换 if else if else 。。。。;

条件一般操作三个的时候

需求: 星期几吃啥 : 星期一 : 鱼香肉丝 星期二: 麻婆豆腐 星期三:番茄鸡蛋 其他 输入错误;

 // 1.通过  if  else if   else  实现
        var str = prompt("请输入星期几?");
        if(str==="星期一"){
            console.log("吃鱼香肉丝");
        }else if(str==="星期二"){
            console.log("麻婆豆腐");
        }else if(str==="星期三"){
            console.log("番茄鸡蛋");
        }else{
            console.log("输入错误!!")
        }
// 2.通过switch case 来实现 

        var str = prompt("请输入星期几?");
        switch(str){
            case "星期一":
                console.log("吃鱼香肉丝");
                break;  
            case "星期二":
                console.log("麻婆豆腐");
                break;
            case "星期三":
                console.log("番茄鸡蛋");
                break;
            default:
                console.log("输入错误22!!");
                break;
        }

注意 : switch case 里的判断是 通过 全等于(===)来判断的

  var str = prompt("请输入星期几?");
        // // str 类型 ?
        console.log(str); 
        str = parseInt(str);
        // 如果是== 那么 可以进入到下面的判断里去 :  "1"==1  true;
        // 如果 === 那么 就不能进入 下面的判断里去 : "1" === 1  false
        switch(str){
            case "1":
                console.log("吃鱼香肉丝");
                break;  
            case "2":
                console.log("麻婆豆腐");
                break;
            case "3":
                console.log("番茄鸡蛋");
                break;
            default:
                console.log("输入错误22!!");
                break;
        }
一、switch case 的穿透 , 如果在 case的后面 不写 break

只能向下穿透 ,不会向上穿透;

var a = parseInt( prompt("请输入数字"));//输入1  输出1111   2222   3333
 //输入2  输出  2222   3333   //输入3  输出 3333
        switch (a) {
            case 1:
                console.log(1111)
                // break;
            case 2:
                console.log(2222)
                // break;
            case 3:
                console.log(3333)
                break;//穿透到这里
            case 4:
                console.log(444)
                break;
            default:
                console.log("其他情况");
                break;
        }

二、switch case 的范围判断

如果做范围判断 不能直接在switch里写变量 需要写true 来完全命中 case中的情况 ;

 var score = prompt("请输入分数");
        //switch (score) {//不能直接在switch里写变量
        switch (true) {
            case score < 60:
                console.log("不及格");
                break;
            case score >= 60 && score < 70:
                console.log("一般");
                break;
            case score>=70 && score<80:
                console.log("良好");
                break;
            case score>=80:
                console.log("优秀");
                break;
            default:
                console.log("输入错误");
                break;
        }

练习 1.输入年份判断该年是平年还是闰年

能够被4整除 且不能被100整除 或者 能够被400整除的年份就是闰年 其他的就是平年

2.根据输入的三个数字,判断是这一年的第几天

 var year = prompt("请输入年份");
        var month = parseInt(prompt("请输入月份"));
        var day = prompt("请输入日");
        // 1.判断 是平年还是闰年 ? 知道2月到底是多少天?
        var feb;  // 记录二月的天数
        // 判断是平年还是闰年?
        if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
            console.log("是闰年")
            feb = 29;
        } else {
            console.log("是平年")
            feb = 28;
        }
        //常规思维解决 
        // switch (month) {
        //     case 1:
        //         console.log("是这年的" + day + "天");
        //         break;
        //     case 2:
        //         var res = 31 + parseInt(day);
        //         console.log("是这年的" + res + "天");
        //         break;
        //     case 3:
        //         var res = 31 + feb + parseInt(day);
        //         console.log("是这年的" + res + "天");
        //         break;
        //     case 4:
        //         var res = 31 + feb + 31 + parseInt(day);
        //         console.log("是这年的" + res + "天");
        //         break;
        //     case 5:
        //         var res = 31 + feb + 31 + 30 + parseInt(day);
        //         console.log("是这年的" + res + "天");
        //         break;
        //     case 6:
        //         var res = 31 + feb + 31 + 30 + 31 + parseInt(day);
        //         console.log("是这年的" + res + "天");
        //         break;

        // }

        // switch case 穿透 
        day = parseInt(day);
        switch (month-1) {
            case 5:
                // day  = day + 31;
                day+=31
            case 4:
                // day  = day + 30;
                day+=30;
            case 3:
                // day  = day + 31;
                day+=31;
            case 2:
                // day  = day + feb;
                day += feb;
            case 1:
                // day  = day + 31;
                day += 31;
            case 0:
                console.log("是当年的"+day+"天");
                break;
        }

四。三元运算

  • 三元运算,就是用 两个符号 组成一个语句

  • 三元运算只是对 if else 语句的一个简写形式

  • 语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行

var age = 18;
age >= 18 ? alert('已经成年') : alert('没有成年')

定义字符串: 1.双引号 2.单引号 3.反引号

var username = prompt("请输入名字");
        var age = prompt("请输入年龄");
        var str1 = "我是字符串,我的名字是"+ username +"我的年龄是"+age;
        console.log(str1);
        var str2 = '我是字符串2222,我的名字是'+username+'我的年龄是'+age;
        console.log(str2)
       // ${} 插值表达式 ,里面可以解析变量,还可以解析 三元运算符;
        var str3 = `我是字符串3333我的名字是${username}我的年龄是${age}`;
 
         var username = prompt("请输入名字");
        var age = prompt("请输入年龄");
         var flag = true;
        document.querySelector(".btn").onclick = function(){
       var str3 = `我是字符串3333我的名字是${flag?"张三":"李四"}我的年龄是${flag?21:22}`; 
// var str3 = `我是字符串3333我的名字是${if(flag){"张三"}else{"李四"}}我的年龄是${flag?21:22}`;
             console.log(str3);
             flag = !flag;
        }

五。 循环

一。 while循环
  • while,当条件满足时就执行代码,一旦不满足了就不执行了

  • 语法 while (条件) { 满足条件就执行 }

  • 因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了

分支 可以把代码块 按需执行; 循环 是可以让代码块 重复执行

循环的三要素 : 1.初始值 var a = 1; 2. 条件判断 a<6 3.初始值的改变

while(条件){    // 条件 如果是true 那么就会重复执行while 后大括号里的代码

        }
        while(true){
            // 重复执行这里的代码块
        }

 // while(true){ // 死循环
        //     console.log(111);
        // }
var a = 1; // 初始值
        while(a<5){
            console.log(1111);
            a++;
        }
 console.log(2222);
        第一次 : a = 1  判断  a<5  ==== 1<5  true  while  循环里的代码会执行  打印1111  a++
        第二次 : a = 2  判断     2<5  true    循环里的代码会执行  打印1111  a++
        第三次    a = 3 判断     3<5  true    循环里的代码会执行  打印1111  a++
        第四次 a = 4  判断     4<5  true    循环里的代码会执行  打印1111  a++
        第五次  a = 5 判断  5<5  false  跳出循环 执行循环下面的代码

练习:找出 100-1000中所有各位十位百位一样的数字 : 例如 : 111 222 333 。。。;

// 方式一 ;
        var num = 100;
        while(num<=1000){
            // console.log(num);
            var a = parseInt( num/100)   // 百位
            var b =    parseInt( (num%100  )/10  );             // 十位
            var c = num%10 ;        // 个位
            // console.log(a,b,c);
            // console.log("---");
            if(a===b && b===c){
                console.log(num);
            }
            num++;
        }
        // 方式二:
        // 在js里 字符串可以通过 下标获取每一个字符 
        // 每一个字符 js都会编号,编号是从0 开始依次增加的;
        // var str = "abcdef";
        //         // 012345
        //  console.log( str[5])
        // 111  222 333
        var num = 100;
        while(num<=1000){
            // console.log(num);
            var a = String(num)[0]; // 百位
            var b = String(num)[1];  // 十位
            var c = String(num)[2]; // 个位
            if(a===b && b===c){
                console.log(num);
            }
            num++;
        }
计数

        var num = 0;
        var count = 0;  // 再定义一个变量记录 循环次数;
        while(num<10000){
            // console.log(num);
            count++;
            num+=17;
        }

        console.log(count);
累加
 var num = 0;
        // 0+1+2+3+4;
        // 1.在循环外部定义一个变量记录累加的值 2. 每次循环的时候利用 变量加上 循环累加的值就可以了
        var total = 0;
        while(num<5){
           
            console.log(num);
            // total = total + num;
            total += num;

            num++;
        }
       / * 
第一次 : num = 0 total = 0  ---进入循环--- total = 0;  num =1
第二次 : num = 1 total = 0  ---进入循环---  total = 1   num = 2
第三次 : num = 2  total = 1   ---进入循环---  total = 3  num = 3;
第四次 : num  = 3  total  = 3   ---进入循环---  total = 6 num = 4;
第五次: num  = 4  total  = 6   ---进入循环---  total = 10; num = 5
5<5 false  循环结束;
*/
二。DO WHILE 循环
  • 是一个和 while 循环类似的循环

  • while 会先进行条件判断,满足就执行,不满足直接就不执行了

  • 但是 do while 循环是,先不管条件,先执行一回,然后在开始进行条件判断

  • 语法: do { 要执行的代码 } while (条件)

// 下面这个代码,条件一开始就不满足,但是依旧会执行一次 do 后面 {} 内部的代码
var num = 10
do {
  console.log('我执行了一次')
  num = num + 1
} while (num < 10)
三。for循环

和 while 和 do while 循环都不太一样的一种循环结构

● 道理是和其他两种一样的,都是循环执行代码的

● 语法: for (var i = 0; i < 10; i++) { 要执行的代码 }

// 把初始化,条件判断,自身改变,写在了一起
for (var i = 1; i <= 10; i++) {
  // 这里写的是要执行的代码
  console.log(i)
}
// 控制台会依次输出 1 ~ 10

1.初始值

2.条件

3.初始值的改变

4.执行代码 ;

   var i = 0;  // 初始值 
        for(;i<5;){  // 判断条件
            console.log(i); // 需要循环的代码块 ;
            i++; // 初始值的改变
        }
        
        // for循环的常规写法 ;
        // for(var i=0;i<5;i++){
        //     console.log(i);
        // }

计算所有1-100 之间 奇数的和

 //for循环累加
 var total = 0;
        for(var i=1;i<100;i++){
            if(i%2===1){
                total+= i;
            }
        }

输入 年 月 日 判断是当年的第几天 ?

 var year = 2001;
        var month = 3;
        var day = 11;
        // 1.判断闰年和平年 ,获取二月份的天数
        var feb;  // 记录二月的天数
        // 判断是平年还是闰年?
        if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
            console.log("是闰年")
            feb = 29;
        } else {
            console.log("是平年")
            feb = 28;
        }
        // 2.根据月份累加天数;
        for(var i=1;i<month;i++){
            // i 就是每个月 ;
            //  i是月份 的值可能是 : 1 2 3 4 5 6 7 8 9 10 11 
            // 1 3 5 7 8 10  +  31天 
            // 2 +  feb 天
            // 其他的就是加  30天;
            if(i===1 || i===3 || i===5 || i===7 || i===8 || i===10){
                day += 31;
            }else if(i===2){
                day += feb;
            }else {
                day += 30;
            }
        }
        console.log("在"+year+"年中是第"+day+"天");
一、循环中字符串的拼接 ;
  var str = "a";
        var num = prompt("请输入数量");
        // 输入了几个 那么生成一个长度是 几的 a 的字符串; 
        // 2  : aa 
        // 5 : aaaaa
        var res = "";
        for(var i=0;i<num;i++){
            res += str;  // 字符串的累加 
        }
        console.log(res);
二、循环里的i值问题
   for(var i=0;i<3;i++){
            console.log(i);  // 0 1 2 
        }

        console.log(i); //   3
三 、通过字符串拼接生成 table

        var str = "<table width='500' border=''><tr>  <td>1</td>   <td>2 </td>  <td>3</td><td>4</td>   <td>5 </td>  <td>6</td></tr></table>";
        document.write(str);

// 利用循环来拼接需要的html结构 

        var html = "<table width='500' border=''><tr>";
        for (var i = 1; i <= 8; i++) {
            html += "<td>"+i+"</td>";
         }
         html += "<tr></table>";
         console.log(html);
         document.write(html);

练习:打印出1000-2000年中所有的闰年,并以每行四个数的形式输出

 var count = 0;
        var str = "";
        for (var i = 1000; i <= 2000; i++) {
            // console.log(i);
            if ((i % 4 === 0 && i % 100 !== 0) || i % 400 === 0) {
                console.log(i+"是闰年")
                str += i+"&nbsp;&nbsp;";
                count++;
                if(count%4===0){
                    str += "<br/>";
                    // console.log("每四个结束了!!",str);
                    document.write(str);
                    str = ""
                  
                }
            }
        }

嵌套循环 : 多个循环 套在一起;
需求: 绘制 
        /* 
            ****
            ****
            ****
        */
        
        
         // 第一行
        var str = "";
        for(var i=0;i<4;i++){
            str += "*";
        }
        str += "<br/>"
        // console.log(str); // ****
        document.write(str);
        // 第二行
        var str = "";
        for(var i=0;i<4;i++){
            str += "*";
        }
        str += "<br/>"
        // console.log(str); // ****
        document.write(str);
        // // 第三行 
        var str = "";
        for(var i=0;i<4;i++){
            str += "*";
        }
        str += "<br/>"
        // console.log(str); // ****
        document.write(str);

利用嵌套循环实现

for (var j = 0; j < 3; j++) {  // 控制行数的

            var str = "";
            for (var i = 0; i < 3; i++) {  // 控制列数的;
                str += "*";
            }
            str += "<br/>"
            // console.log(str); // ****
            document.write(str);

        }
  /* 
        大循环第一次执行    j = 0 
             小循环执行三次   i = 0 
                            i = 1 
                            i = 2 
        大循环执行第二次    j = 1
                 小循环执行三次   i = 0 
                                i = 1 
                                i = 2 
        大循环执行第三次     j=2 
                  小循环执行三次   i = 0 
                                i = 1 
                                i = 2 
                    小循环结束
        大循环结束 
        执行后续代码 */
四。BREAK 终止循环
  • 在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环

  • 比如:我要吃五个包子,吃到三个的时候,不能在吃了,我就停止吃包子这个事情

  • 要终止循环,就可以直接使用 break 关键字

for (var i = 1; i <= 5; i++) {
  // 没循环一次,吃一个包子
  console.log('我吃了一个包子')
  // 当 i 的值为 3 的时候,条件为 true,执行 {} 里面的代码终止循环
  // 循环就不会继续向下执行了,也就没有 4 和 5 了
  if (i === 3) {
    break
  }
}

停止break后的所有循环

  for(var i=1;i<=5;i++){
            if(i==2){
                break; // 停止 break之后的所有循环;
            }
            console.log(i);
        }
   //输出为    1     
   
  // 需求 : 判断 1-100 之间 有没有偶数?
     var flag = false;  // 没有偶数
        for (var i = 1; i <= 100; i++) {
            if (i % 2 === 0) {
                flag = true;
                break;  // 停止后续的所有循环;
            }
            console.log(i);
        }

        if (flag) {
            console.log("有偶数")
        } else {
            console.log("没有偶数")
        }
五。CONTINUE 结束本次循环

  • 在循环中,把循环的本次跳过去,继续执行后续的循环

  • 比如:吃五个包子,到第三个的时候,第三个掉地下了,不吃了,跳过第三个,继续吃第四个和第五个

  • 跳过本次循环,就可以使用 continue 关键字

for (var i = 1; i <= 5; i++) {
  // 当 i 的值为 3 的时候,执行 {} 里面的代码
  // {} 里面有 continue,那么本次循环后面的代码就都不执行了
  // 自动算作 i 为 3 的这一次结束了,去继续执行 i = 4 的那次循环了
  if (i === 3) {
    console.log('这个是第三个包子,掉地下了,我不吃了')
    continue
  }
  console.log('我吃了一个包子')
}

continue :

停止当前这次循环 ,后面的循环依然会继续执行;

不会停止所有的循环;

跳出本次循环

for(var i=1;i<=5;i++){
            if(i===2 || i===4){
                continue; // 停止本次循环
            }
            console.log(i);
        }
   输出为:1,3,5     

练习

a+aa+aaa+aaaa : 例如 a = 1 求 1+ 11+ 111 + 1111的值? 1.组装 a aa aaa aaaa ; 2.把 所有组装的数字 累加起来;

方式一:
        // var a = 1;
        // // var b = String( a) + String( a);
        // // var b = a.toString() + a;
        // var b = a + "" + a;
        // console.log(b);

        // var c = a + "" + a + a;
        // console.log(c);

        // var d = a + "" + a + a + a;
        // console.log(d);

        // console.log(a + Number(b) + Number(c) + Number(d));
        
   // 方式二: 循环

        var a = 1;
        var str = "";
        var total = 0;
        for(var i=0;i<10;i++){
            str += a;
            console.log(str);
            total += Number( str);
        }


        console.log(total);

判断一个数是否是一个质数?

  var a = 4; // 判断这个a是否是一个质数;
        if (a !== 1) {
            var count = 0;
            for (var i = 2; i < a; i++) {
                if (a % i === 0) {
                    count++;
                }
            }

            if (count === 0) {
                console.log(a + "是一个质数");
            } else {
                console.log(a + "不是一个质数");
            }
        }else{
            console.log(a + "不是一个质数也不是合");
        }
        
        //通过循环 替换a的值 判断是否是质数就可以;  a 换成 1-100 之间的数 
        
           for (var j = 1; j <= 100; j++) {

            var a = j; // 判断这个a是否是一个质数;

            if (a !== 1) {
                var count = 0;
                for (var i = 2; i < a; i++) {
                    if (a % i === 0) {
                        count++;
                    }
                }

                if (count === 0) {
                    console.log(a + "是一个质数");
                } 
            } else {
                console.log(a + "不是一个质数也不是合");
            }
        }
        
        //3.每4个输出一行 
        
         var num = 0;  // 记录质数输出的次数;
        var str = "";
        for (var j = 1; j <= 100; j++) {

            var a = j; // 判断这个a是否是一个质数;

            if (a !== 1) {
                var count = 0;
                for (var i = 2; i < a; i++) {
                    if (a % i === 0) {
                        count++;
                    }
                }

                if (count === 0) {
                    // console.log(a + "是一个质数");
                    str += a + "&nbsp;&nbsp;"
                    num++;

                    if(num%4===0){
                        console.log(str);
                        document.write(str+"<br/>");
                        console.log("---质数4次输出完毕---")
                        str = "";//输出之后重置str
                    }
                }
            } else {
                // console.log(a + "不是一个质数也不是合");
            }

3.每4个输出一行


        var num = 0;  // 记录质数输出的次数;
        var str = "";
        for (var j = 1; j <= 100; j++) {

            var a = j; // 判断这个a是否是一个质数;

            if (a !== 1) {
                var count = 0;
                for (var i = 2; i < a; i++) {
                    if (a % i === 0) {
                        count++;
                    }
                }

                if (count === 0) {
                    // console.log(a + "是一个质数");
                    str += a + "&nbsp;&nbsp;"
                    num++;

                    if(num%4===0){
                        console.log(str);
                        document.write(str+"<br/>");
                        console.log("---质数4次输出完毕---")
                        str = "";//重置str
                    }
                }
            } else {
                // console.log(a + "不是一个质数也不是合");
            }

4.计算10的阶乘

 var a = 10;
        var total = 1;
        for(var i=1;i<=a;i++){
            total *= i;
        }
        console.log(total);
        
        2.求1+2!+3!+...+20!的值;
        var totalNum = 0;
        for (var j = 1; j <= 20; j++) {
            var a = j;
            var total = 1;
            for (var i = 1; i <= a; i++) {
                total *= i;
            }
            console.log(j+"的阶层的值是:"+total);
            totalNum+= total;
        }

        console.log("最终的结果值是",totalNum);

题目    *                 
        **              
        ***             
        ****
        ***** 
        
        
        for (var j = 1; j <= 5; j++) {   // j 是控制行数的;


            var str = "";
            for (var i = 1; i <= j; i++) {   // i 控制列数的 
                str += "*";
            }
            str += "<br/>"
            document.write(str);


        }
        
  题目      
            |||@              第一行 补3个空格 ---》    (7 - 行数:1 )/2 = 3               
            ||@@@              第三行 补2个空格 ----》  (7-3) /2 = 2;        
            |@@@@@              第五行   1  -----》  (7-5)/2  = 1      
            @@@@@@@            第七行  ----》  (7-7) /2  = 0;
            
             var line = 11;

        for (var j = 1; j <= line; j++) {  // 控制行

            var str = "";
            for (var i = 1; i <= j; i++) {  // 控制列
                str += "@";
            }
            str += "</br>"

            if(j%2===1){
                // 在前面补上空格 

                var res = "";
                for(var k=0;k<(line-j)/2;k++){
                    res += "&nbsp;&nbsp;"
                }

                var res = "&nbsp;&nbsp;".repeat((line-j)/2);

                document.write(res)
                // 如果是奇数行 那么会绘制出图形 ;偶数行 不管 ;
                document.write(str);
            }
        }
绘制 9 * 9的长方形;
 for (var j = 1; j <= 9; j++) {
            var str = "";
            for (var i = 1; i <= 9; i++) {
                str += "@";
            }
            str += "<br/>";
            document.write(str)
        }

绘制 斜三角

for (var j = 1; j <= 9; j++) {
            var str = "";
            for (var i = 1; i <= j; i++) {
                str += "@";
            }
            str += "<br/>";
            document.write(str)
        }
        document.write("<hr>");

99乘法表

for (var j = 1; j <= 9; j++) {

            var str = "";
            for (var i = 1; i <= j; i++) {
                str += i + "*" + j + "=" + i * j + "&nbsp;&nbsp;";
            }
            str += "<br/>";
            document.write(str)
        }

小知识  repeat重复
     var a = "1a0";
        console.log(   a.repeat(10));
//1a01a01a01a01a01a01a01a01a01a0
        var ress = "";
        for(var i=0;i<2;i++){
            ress += a;
        }
        console.log(ress);
//1a01a0        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值