zoukankan      html  css  js  c++  java
  • js 2 js语句条件 循环

    1、条件语句:

      (1)比较操作符:

        ==:判断是否相等

        !=:判断是否不相等

        > :判断是否大于

        >=:判断是否大于等于

        < :判断是否小于

        <=:判断是否小于等于


        【例1】

        if(iNum1==iNum2)     //如果iNum1与iNum2相等
        {
          iNum3=iNum1;    //将iNum1的值赋给iNum3
        }
        else{             //否则
          iNum3=iNum2;      //将iNum2的值赋给iNum3
        }


    【补充】以上也可写作:

    iNum3 = iNum1==iNum2 ? iNum1 : iNum2


    这是一个三目运算符,结构为:

    a = 判断式 ? 值1 :值2

    意思是,先对“判断式”进行判断,若结果为真,则a=值1;若为假,则a=值2。


    所以上式可以理解为,先判断“iNum1==iNum2”是否为真:若为真,则iNum3=iNum1;若为假,则iNum3=iNum2。

    (2)逻辑运算符:

    &&:与运算 (a && b:a与b,代表同时满足a与b时,判断式才为真)

    ||:或运算 (a || b:a或b,代表只要满足a或者满足b,满足其中一项判断式就为真)

    !:非运算 (!a :非a,与a相反,意思是 如果a为真,则!a为假;a为假,则!a为真。)


    【例2】

    if(iNum1>iNum2 && iNum1>iNum3)   //当 iNum1>iNum2 且 iNum1>iNum3 同时满足时,
    {
      alert("第一个值最大");         //输出"第一个值最大"
    }
    if(iNum1>iNum2 || iNum1>iNum3)    //当 iNum1>iNum2 或者 iNum1>iNum3 时,
    {
      alert("第一个值不是最小");      //输出"第一个值不是最小"
    }
    if(!(iNum1>iNum2 || iNum1>iNum3))    //取(iNum1>iNum2 || iNum1>iNum3)的相反意思,
    {
      alert("第一个值最大");        //输出"第一个值最小"
    }

      (3)if语句:

    if(条件一)
    {
      ……行为一
    }

    else if(条件二)
    {
      ……行为二
    }

    else if(条件三)
    {
      ……行为三
    }

    ……

    else
    {
      ……行为N
    }


    此语句可理解为:

    如果是“条件一”,则进行“行为一”;

    另外,如果是“条件二”,则进行“行为二”;

    另外,如果是“条件三”,则进行“行为三”;

    ……(else if 可以有多个)

    以上情况都除外(既不是“条件一”也不是“条件二”也不是“条件三”……),则进行“行为N”。


    【补充】


    if(条件一)
    {
      ……行为一
    }

    if(条件二)
    {
      ……行为二
    }

    else
    {
      ……行为三
    }

    如果是if后面跟着的是else,则此else仅针对它上面最近的那个if。

    此语句可理解为:

    如果是“条件一”,则进行“行为一”;

    如果是“条件二”,则进行“行为二”;

    另外,除“条件二”外的情况,则进行“行为三”(此处的else与第一个if无关)


    2、弹出框:

      (1)消息框:alert()


      (2)输入框:prompt()

    *在输入框里输入的内容,程序按照字符串形式读取。

    【例3】

    var sInput=prompt("请输入一个1-10之间的数字");   //在弹出的输入框中,输入字符串,存入sInput中


      (3)询问框:confirm()

    *弹出一个询问框,有“确定”和“取消”的按钮。返回的结果是布尔类型,真或假。

    【例4】

    if(confirm("你确定喜欢蓝色吗?"))     //询问框询问的内容
    {
      alert("你喜欢蓝色");          //选择“确定”,弹出此框
    }
    else{
      alert("你不喜欢蓝色");         //选择“取消”,弹出此框
    }


      (4)字符串转数字:Number()

    *对输入框输入的内容,程序都按照字符串形式读取。当我们输入数字,希望以数字方式读取怎么办呢?就可以用Number()

    【例5】

    var sInput=prompt("请输入一个1-7之间的数字");
    var nInput=Number(sInput);

    此例子的作用:先将输入框里输入的字符串信息读取到sInput中,然后用Number()将sInput里的字符串信息转换成数字,存放到nInput中。


      (5)判断是否为数字:isNaN()

    *用Number()只能转数字,所以我们需要用语句判断一下我们输入的是否是数字,此时用isNaN()

    isNaN()的意思就是:is not a number,“不是数字”。


    【例6】

    var sInput=prompt("请输入一个1-7之间的数字");

    var nInput=Number(sInput);

    if(isNaN(nInput))        //如果 nInput 不是数字
    {
    alert("你输入的不是数字");    //则输出“你输入的不是数字”
    }
    else               //否则
    {
    alert("你输入的是数字");       //输出“你输入的是数字”
    }

      (6)在此基础上,还可以顺便判断一下输入的是否是整数,此时用parseInt(),转成整数:

    【例7】

    var sInput=prompt("请输入一个1-7之间的数字");

    var nInput=Number(sInput);

    if(isNaN(nInput))
    {
      alert("你输入的不是数字");
    }
    else
    {
      if(nInput==parseInt(nInput))   //判断转成数字的值,是否与它取整后的值相等
      {
        alert("你输入的是整数");
      }
      else
      {
        alert("你输入的不是整数");
      }

    }


    (7)在此基础上,还可以顺便判断一下输入的是否在1-7范围之间,此时用逻辑运算符

    【例8】

    var sInput=prompt("请输入一个1-7之间的数字");

    var nInput=Number(sInput);

    if(isNaN(nInput))
    {
      alert("你输入的不是数字");
    }
    else
    {
      if(nInput==parseInt(nInput))
      {
        if(nInput>7 || nInput<1)        //判断,如果此数大于7或者小于1
        {
          alert("你输入的不在1-7之间")   //则输出此框
        }
      }
      else
      {
      alert("你输入的不是整数");
      }

    }

      (8)在此基础上,还可以判断每个输入的值对应执行一个行为,用switch..case:

    【例9】

    switch(nInput)        //判断nInput的值
    {
    case 1:           //如果为1

    alert("星期一");      //则输出“星期一”

    break;          //然后跳出循环


    case 2:         //如果为2

    alert("星期二");      //则输出“星期二”

    break;          //然后跳出循环


    case 3:         //以此类推
    alert("星期三");
    break;

    case 4:
    alert("星期四");
    break;

    case 5:
    alert("星期五");
    break;

    case 6:
    alert("星期六");
    break;

    case 7:
    alert("星期日");
    break;

    default:        //default就是如果没有符合的case就执行它,default并不是必须的

    语句;      

    break;

    }

    *用switch..case的好处是:只需要判断一次后即可退出循环,更加效率。


    【补充】break 是跳出所在循环的意思。

    3、循环语句:


      (1)while

    while(..)       //当...时
    {
      ..       //进行此操作
    }


      (2)do...while

    do
    {
      ..       //进行此操作
    }
    while(..)       //当...时


      *以上两种类型,都是当...时,进行...操作


        【例10】

    var i=1;

    var iSum=0;

    while(i<101)     //当i<101时
    {
      iSum+=i;   //iSum=iSum+i

      i++;      //i=i+1
    }
    alert(iSum);

    解读:

    答案:iSum=1+2+3+..+100=5050



      (3)for循环:此循环用的最多

    【例11】

    var iSum=0;

    for(var i=1;i<101;i++)
    {
      iSum+=i;
    }
    alert(iSum);

    解读:同例10

      (4)break:跳出整个for循环体

    【例12】

    var iSum=0;

    for(var i=1;i<101;i++)
    {
      if(i==5)
      {
        break;
      }
      iSum+=i;
    }
    alert(iSum);

    解读:当i==5时,break跳出所在for循环体,所以直接输出之前的iSum=1+2+3+4=10


      (5)continue:跳出当前条件下的循环,继续往后执行

    【例13】

    var iSum=0;

    for(var i=1;i<101;i++)
    {
      if(i==5)
      {
        continue;
      }
      iSum+=i;
    }
    alert(iSum);

    解读:当i==5时,continue跳出此次循环,直接进入下一个循环i=6,所以iSum=1+2+3+4+6+……+100=5045


      (6)return:有两种用法


        第一种是:结束整个方法体function{}

    【例14】

    function

    {

      var iSum=0;

      for(var i=1;i<101;i++)
      {
        if(i==5)
        {
          return;
        }
        iSum+=i;
      }
      alert(iSum);

    }

    解读:直接跳出方法体,直接出现在最末尾的}外,所以就不执行了。

        第二种是:返回一个值

    【例15】

    var iSum=0;

    for(var i=1;i<101;i++)
    {
      if(i==5)        //i=5时,
      {
        i=B(i);        //i=调用方法B(i)的值=10
      }
      iSum+=i;
    }
    alert(iSum);

    }

    function B(i)
    {
      i+=5;          // i=i+5=10
      return i;
    }

    解读:当i=5时,i=调用方法所返回的值=10,所以iSum=1+2+3+4+10+11+12+..+100


      (7)九九乘法表:

        

  • 相关阅读:
    kerberos
    BZOJ 3309 莫比乌斯反演
    Pollard_rho定理 大数的因数个数 这个板子超级快
    POJ 3171 区间覆盖最小值&&线段树优化dp
    拼题 L2-001 紧急救援 最短路计数+记录路径
    HDU 6464 权值线段树 && HDU 6468 思维题
    HDU 1394 线段树求逆序对
    [Poi2010]Bridges 最大流+二分答案 判定混合图欧拉回路
    01背包 多重背包 复习 模板
    CF 2018 Battle of Brains GYM 102062 F
  • 原文地址:https://www.cnblogs.com/marchtree/p/4663012.html
Copyright © 2011-2022 走看看