day 0623

0623

1.条件语句

if(条件){
   语句块;
   }

条件的结果强制转换为布尔值,为true则执行语句块

注意:条件中不能出现声明

表达式如果用逗号隔开,前面的不作为条件,最后一个作为条件

if(条件){
	语句块1;
}
else{
	语句块2;
}

满足条件时执行语句块1,否则执行语句块2

如果条件语句的语句块只有一句语句,则可以省略{}

省略{}后,条件语句不能使用“;”,如果使用了则语句块脱离条件语句成为单独语句

if(条件1){
	语句块;
}
else if(条件2){
	语句块;
}else if(条件3-){
	语句块;
}
else if(条件4){
	语句块;
}

多分支条件语句,会从第一个条件判断到最后一个条件,因此需要在条件描述时将频率高的条件写在前面

var div=document.getElementById("div1");
        var x=0;
        var y=0;
        setInterval(function(){
            x++;
            if(x>=300){
                y++;
                x=300;
            }
            if(y>=300){
                x--;
                y=300;
            }
            div.style.left=x+"px";
            div.style.top=y+"px";
        },16);
//一个小测试
switch(表达式){
	case 值1:
		语句块1;
		break;
	case 值2:
		语句块2:
		break;
	default:
		语句块3;
}

表达式不会强制转换为布尔值

当表达式绝对等于(===)值1时,执行语句块1,随后跳出整个语句

break的作用是跳出当前switch的所有语句块

若没有写入break,则继续不判断下一个值是否与表达式相同,直接执行下一个语句块(穿越)

表达式不等任何值时,默认执行default语句块内容,一般default中不使用break

 if(a===3){
                console.log("aaa");
                console.log("bbb");
            }
            if(a===4){
                console.log("bbb");
            }

            switch(a){
                case 3:
                    console.log("aaa");
                case 4:
                    console.log("bbb");
                    break;
            }

穿越的作用:

1.上面条件内容用到下面的语句,并且是在上面语句的最后

2.一般用于判断条件等于某个值或者等于另外一个值

if(a===3 || a===4 || a===5){
                 console.log("aaa");
             }

            switch(a){
                case 3:
                case 4:
                case 5:
                    console.log("aaa");
                    break;
            }

清除魔术字符串:

在代码中多次出现,与代码形成强耦合的某一字符串或数值,不利于将来的修改和维护。在编写代码时应尽量消除魔术字符串,用变量代替

2.while语句

循环三要素:

1.条件变量的初始值

2.循环条件

3.条件变量向条件外变化的表达式

循环的条件默认转换为布尔值

while(循环条件){
	循环语句块;
}

循环条件是在每次执行循环时首先判断的内容,会判断多次

//1-100的和
var sum = 0,i = 0;
while(i++<100){
    sum += i;
}
console.log(sum);

改进输入:

//输入数值,数值以下直至1的和
var  i, sum = 0;
i = ~~prompt("输入一个数值,会计算从1到该数值的和:");  //将输入字符串转化为数值
while (i > 0) {
	sum += i;
	i--;
    }
console.log(sum);

嵌套循环,每层循环的变量不能相同

每次重新开始循环内侧循环体时,内层的循环变量需要重置,否则无法循环

//while实现乘法口诀表
var str = "", i = 0, j = 0;
    str += "<table>";
    while (i++ < 9) {
      str += "<tr>"
      while (j++ < i) {
        str += "<td>" + i + "*" + j + "=" + i * j + "</td>";
      }
      j = 0;
      str += "</tr>";
    }
    str += "</table>";
    document.write(str);
//修改
var str = "", i = 0, j = 9, num;
    str += "<table>";
    while (i++ < 9) {
      str += "<tr>";
      num = i;
      while (j-- > 0) {
        str += "<td>" + i + "*" + num + "=" + i * num + "</td>";
        num++;
      }
      j = 9 - i;
      str += "</tr>";
    }
    str += "</table>";
    document.write(str);
//求质数
 var num = ~~prompt("输入一个数,输出该数本身及以下的所有质数:")
    var i = 1, j;
    kaige: while (i++ < num) {
      j = 1;
      while (j++ < i - 1) {
        if (i % j == 0) continue kaige;
      }    
      console.log(i);
    }
   var num = ~~prompt("输入一个数,输出该数本身及以下的所有质数:")
   var i=1;
    var j,flag;
    while(i++<num){
       j=1;
       flag=true;
       while(j++<i-1){
            if(i%j===0)flag=false;
       }
       if(flag) console.log(i);
    } 
	var num = ~~prompt("输入一个数,输出该数本身及以下的所有质数:")
	var i=1;
    var j,flag;
    while(i++<num){
       j=1;
       flag=true;
       while(j++<i-1){
            if(i%j===0){
                flag=false;
                break;
            }
       }
       if(flag) console.log(i);
    }

斐波那契数列:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

//循环实现斐波那契数列
var num = ~~prompt("输入一个数,将输出该数以下的斐波那契数列:");
    var i = 0, j = 1, sum = 0;
    while (sum <= num) {
      sum = i;
      i = j;
      j = sum + j;
      console.log(sum);
      if(i > num) break;
    }
//以字符串方式输出斐波那契数列
var num = ~~prompt("输入一个数,将输出该数以下的斐波那契数列:");
var str="",i=0,j=1;
      var _temp
      str+=i+","+j;
      while(true){
          _temp=i;
          i=j;
          j=_temp+j;
          if(j>num) break;
          str+=","+j;
      }

      console.log(str);

最大公因数

//循环实现最大公因数的计算
var a = 64,b = 48;
var min = a < b ? a : b;
var i = 0 , max = 1;
while(i++ < min){
	if(a % i === 0 && b % i === 0) max=i;
}
console.log(max);
var a=64;
  var b=48;
  var min=a>b ? b : a;
  var i=2;
  var max=1;
  while(i<min){
      if(a%i===0 && b%i===0){
          max=i;
      }
      i++;
  }
  console.log(max);

链表:线性的顺序存储数据,详解链接

https://zhuanlan.zhihu.com/p/29627391

3.do while和for

​ 变量初始化;循环条件;变量向循环外运行的表达式

​ 变量初始化仅做了一次

​ 条件 是每次循环前执行判断的

​ 向条件外运行的表达式是每次循环完成,判断条件之前执行的表达式

作业:

最小公倍数:

var a=64,b=48;
var min = a < b ? a : b;
var i = 0 , num = 1;
while(i++ < min){
	if(a % i === 0 && b % i === 0) num=i;
}
var max = a/num * b/num * num;
console.log(max);

菱形:

var num = ~~prompt("打印奇数位菱形,所给数值为菱形对角线含星星数:");
        if (num % 2 === 0) throw new Error("输入有误!");
        var i = 0,str = "",j = num -2;
        while (i++ < num) {
            _space = j;
            while (_space-- > 0) {
                str += "&nbsp;";
            }
            j--;
            _star = i;
            while (_star-- > 0 && i != num) {
                str += "&nbsp;*";
            }
            while(_star-- > -1 && i === num){
                str += "*&nbsp;"
            }
            str += "<br/>";
        }
        i -= 1;
        while(i-- > 0){
            _space = 0;
            _star = i;
            while (++_space < num - i) {
                str += "&nbsp;";
            }
            while (_star-- > 0) {
                str += "&nbsp;*";
            }
            str += "<br/>";
        }
        document.write(str);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟小胖砸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值