js continue 语句 理解

目录

js 题目

js问题分析

期望使用while 循环如何实现

js 题目

求整数1-100的累计值,但要求跳过所有个位为3的整数

您知道为什么js的 代码1 可以 而 代码2 不可以呢?

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>js continue 语句 理解 xinbiancheng.cn</title>
</head>
<body>
<!--  js 题目5:
 求整数1-100的累计值,但要求跳过所有个位为3的整数 -->
 <script type="text/javascript">
  //代码1
  /*
  var sum = 0;
  for(var i=1;i<=100;i++){
   if(i%10 == 3)
   {
    continue;
   }
   sum += i;
  }
  console.log(sum);
  */
  //为什么上面的代码1,是正确的,而下面的代码2不正确呢?
  //代码2
  var sum = 0;
  var i =1;
  while(i <= 100){
   if(i%10 == 3)
   {
    continue;
   }
   sum += i;
   i++;
  }
  console.log(sum);
 </script>
</body>
</html>

js问题分析:

从问的js问题来看,是有2个知识点比较模糊造成的。

第一

for 和 while 概念模糊 for它有3个参数,有计数功能,所以不会出现死循环。而 while 没有计数功能,会死循环,所以while在循环里做判断计数或者break跳出循环

第二

continue 语句没有理解,continue 执行后,它后面的语句根本就不执行。所以上面的代码 if(i%10 == 3) 当 i==3 时 continue 语句开始执行

sum += i;

i++;

这两个语句根本就不会执行,所以i一直是为3,故死循环

期望使用while 循环如何实现

正确代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>js continue 语句 理解 xinbiancheng.cn</title>
</head>
<body>
<!--  js 题目5:
 求整数1-100的累计值,但要求跳过所有个位为3的整数 -->
 <script type="text/javascript">
  //代码1
  /*
  var sum = 0;
  for(var i=1;i<=100;i++){
   if(i%10 == 3)
   {
    continue;
   }
   sum += i;
  }
  console.log(sum);
  */
  //为什么上面的代码1,是正确的,而下面的代码2不正确呢?
  //代码2
  var sum = 0;
  var i =1;
  while(i <= 100){
   if(i%10 == 3)
   {
    i++; //此处添加一条i++;即可解决这个问题
    continue;
   }
   sum += i;
   i++;
  }
  console.log(sum);
 </script>
</body>
</html>