JavaScript循环结构练习
Posted 遥岑.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript循环结构练习相关的知识,希望对你有一定的参考价值。
目录
循环结构的练习
题1:输出1+2+3+…+100的值
var sum = 0
var i = 1
while(i<=100)
{
sum += i
i++
}
console.log(sum)
输出结果:
题2:输出1~100之间所有的奇数和、偶数和
方法一
var sum1 = 0 //奇数和
var sum2 = 0 //偶数和
var i = 1
while(i<=100)
{
if(i%2!=0)
{
sum1 += i
}
else
{
sum2 +=i
}
i++
}
console.log("奇数和:"+sum1)
console.log("偶数和:"+sum2)
输出结果:
方法二
var sum1 = 0 //奇数和
var sum2 = 0 //偶数和
var i = 1
while (i<=100)
{
sum1 += i
i = i + 2
}
console.log("奇数和:"+ sum1)
i = 2
while (i<=100)
{
sum2 += i
i = i + 2
}
console.log("偶数和:"+ sum2)
运行结果:
题3:水仙花数
水仙花数是一个三位数,每位数字的立方和等于该数
思路:
- 三位数循环范围:100~999
- 先找出该三位数个位、十位、百位上的数字
- 再判断每位数字立方和是否等于该数
var i = 100
var b //百位
var s //十位
var g //个位
while(i<1000)
{
b = parseInt(i/100)
s = parseInt((i-b*100)/10)
g = i-b*100-s*10
if(b**3+s**3+g**3==i)
{
console.log(i)
}
i++
}
输出结果:
题4:斐波那契数列
计算斐波那契数列的前20项之和。
斐波那契数列: 1 1 2 3 5 8 13 21…
方法一
var sum = 0
var i = 1
var a = 1
var b = 1
while (i<=10)
{
sum += a + b
a = a + b
b = a + b
i++
}
console.log(sum)
输出结果:
方法二
var sum = 0
var i = 1
var a = 1
var b = 1
var sum = a + b
while (i<=18)
{
h = a + b
d = b
b = h
a = d
sum += h
i++
}
console.log(sum)
输出结果:
题5:判断某数是否为素数
输入一个整数,判断它是否为素数。
素数:除了1和它本身,无法整除其他数字
思路:
- 输入整数为1或2:是素数
- 输入其它整数:若能整除 2 ~ (它本身-1)的数,则不是素数;若都不能整除,则是素数
var n = prompt("输入一个整数:")
var i = 2
var b
if(n==1||n==2)
{
console.log("是素数")
}
while (i<n)
{
if(n%i==0)
{
console.log("不是素数")
b = false
break
}
else
{
i++
b = true
}
}
if(b==true)
{
console.log("是素数")
}
运行结果:
题6:输入年月日,输出季节及天数
输入年、月、日,输出: (1)月份属于哪个季节 (2)日期是该年中的第几天
- 季节:3 ~ 5是春季,6 ~ 8是夏季,9~11是秋季,12、1、2是冬季
- 大月有31天:1 3 5 7 8 10 12
- 小月有30天:4 6 9 11
- 闰年2月有29天,平年2月有28天
思路:
- 先判断年份是否为平闰年(关系到2月的天数)
- 通过switch…case判断输入月份所在的季节
- 天数 =(所输入月份 - 1)前所有月天数相加 + 输入日期(用循环来写)
var year = parseInt(prompt("输入年份:"))
var month = parseInt(prompt("输入月份:"))
var day = parseInt(prompt("输入日期:"))
var y
var t=0
var i =1
var num1=0
var num2=0
var num3=0
var num4=0
// 判断是否为闰年
if(year%400==0||(year%4==0&&year%100!=0))
{
y = 1 //闰年
}
else
{
y = 0 //平年
}
//判断季节
switch(month)
{
case 3:
case 4:
case 5: console.log("春季")
break
case 6:
case 7:
case 8: console.log("夏季")
break
case 9:
case 10:
case 11:console.log("秋季")
break
case 12:
case 1:
case 2:console.log("冬季")
break
}
//判断是该年的哪一天
// 1 3 5 7 8 10 12 大月
// 2
// 4 6 9 11 小月
while (i<=month-1)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
num = 31
}
else if(i==4||i==6||i==9||i==11)
{
num = 30
}
else if(i==2&&y==1)
{
num = 29
}
else if(i==2&&y==0)
{
num = 28
}
t += num
i++
}
var d = day + t
console.log(d)
输出结果:
题7:计算 1! + 2! + 3! + … + 10!
计算 1! + 2! + 3! + … + 10!
var i
var sum = 0
for(i = 1;i<=10;i++) //算这十个数
{
var s = 1
for(j = 1 ; j <= i ; j++) //算每个数的阶乘
{
s *= j
}
sum += s
}
console.log(sum)
输出结果:
题8:输出100以内的所有素数
输出100以内的所有素数
思路:
- 外循环:循环这100个数
- 内循环:判断该数是否为素数(除了1和它本身,其它数都无法整除)
方法一
var i
for(i = 1;i<=100;i++)
{
if(i==1)
{
console.log(i)
}
var b = true //不能声明在外循环外面 否则4之后b一直为false无法输出
for(j=2;j<i;j++)
{
if(i%j==0)
{
b = false
break
}
}
if(b==true&&i>1)
{
console.log(i)
}
}
输出结果:
方法二
for(var i=1;i<=100;i++)
{
if(i==1)
{
console.log(i)
}
else
{
for(var j=2;j<i;j++)
{
if(i%j==0)
{
break
}
}
if(j>=i)
{
console.log(i)
}
}
}
输出结果:
以上是关于JavaScript循环结构练习的主要内容,如果未能解决你的问题,请参考以下文章