常见的基本循环体
- while循环
- do-while循环
- for循环
while循环体
语法while(布尔表达式){
代码段}.
while循环含义:
// while语句是一个循环结构,小括号内放的是循环条件的布尔表达式,如果给定的表达 式不是布尔表达式,则会自动转换成布尔值
// JS引擎从上往下执行代码 当执行到while语句时
// 1. 需要先判断布尔表达式的结果
// 2. 如果结果为真 执行代码段内的代码
// 如果结果为假 跳过while代码段 从while之后继续执行
// 3. 条件为真 执行完毕代码段以后 会继续判断布尔表达式
// 如果结果为真 执行代码段内的代码
// 如果结果为假 跳过while代码段 从while之后继续执行
// 直到布尔表达式结果为false为止
// 如果布尔表达式结果为真切无法变成假的情况 叫做死循环
5,写循环一定要注意一个点:一定要有存在结束循环的条件,否则则会造成死循环
下面是一个简答的小应用; 打印100以内的所有数1-100;
<script>
var i = 1;
console.time('start');//可以获取此次循环执行时间,
while (i <= 100) {
// console.log(i++);//此时输出1`~99;
i++;加上下面这一条语句就能打印所有的奇数
}
console.timeEnd('start');
</script>
//同时里面也是可以使用关键字break
<script>
// break关键字 出现在循环中 表示跳出最近的一个循环
// 在执行break关键字以后 后面的语句都不会执行
var i = 0;
while (i < 10) {
console.log(i); //输出结果:0 1 2 3 4 5 6
if (i > 5) break;
i++; //1 2 3 4 5 6
}
console.log(i);
</script>
continue关键字
<script>
// continue 在循环结构中 用于跳过当此循环 进入到下一次循环
// break和continue可以出现在任何循环结构中
// 显示100以内 个位不等于3的数
var i = 0;
while (i < 100) {
i++;
if (i % 10 == 3) {
continue; // 跳过当前的循环 继续判断布尔表达式
}
console.log(i);
}
</script>
do-while循环
语法以及含义{
// do{
// 代码段
// }while(布尔表达式);
// do 英文含义 做
// 先执行一边代码段 然后判断逻辑表达式
// do-while和while的区别
// do-while无论什么情况都至少会执行1次代码段
// while在条件不满足时 1次都不执行
// 其他的情况没有区别}
注意点:while循环是进行条件表达式的判断,[先判断,后执行操作]
do-while是先执行do里面的代码块,再来进行while后面的逻辑判断.do-while是最少是执行一次的,但是while可能一次也不会执行,
共同点:都是可以用来运用于不知道具体的循环次数,选择其中一个使用,
特殊场景,最少执行一次,就可以使用do-while循环体,典型案例就是猜数字游戏.
猜数字游戏代码段
<script>
// 需要一个随机数 1-100之间
// 猜数字是多少
var randomNumber = Math.floor(Math.random() * 100) + 1; // 生成一个1-100的随机数
var userInput;//定义一个接受用户输入的值
do {
userInput = parseInt(prompt('请输入一个1-100之间的数字'));//parseInt[用于取整数]
// 判断用户输入是有效输入
if (isNaN(userInput)) {
alert('输入的数字有误,请从新输入');
continue; // 输入错误 继续
}
if (userInput === randomNumber) { // 判断猜对
alert('恭喜你猜对了');
} else if (userInput > randomNumber) {
alert('太大了,请继续猜');
} else {
alert('太小了,请继续猜');
}
} while (userInput != randomNumber); // 循环条件 不相等,继续执行
</script>
for循环
语法for(表达式1,表达式2,表达式3){
代码执行块}
// for括号内的三个表达式
// 1. 初始化
// 2. 循环条件(布尔表达式)
// 3. 增量(改变循环条件)
// for语句的执行顺序
// 1. 执行初始化(只执行1次)
// 2. 判断条件(表达式2)
// 3. 条件为真执行循环,假结束
// 4. 执行完毕循环体以后 执行 增量(改变循环条件)
// 5. 判断条件(表达式2)
// 6. 条件为真执行循环,假结束
// 7. 执行完毕循环体以后 执行 增量(改变循环条件)
for循环主要是用于有明确的循环次数,相比前面两种循环,更倾向于后面的这种循环体,编写时候也不容易出问题.
使用嵌套循环在窗口输出一个直角三角形
<script>
// *
// **
// ***
// ****
// *****
//在页面打印一个*号直角三角形
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= i; j++) {
document.write('*');
}
document.write('<br>');
}
</script>
使用嵌套循环输出一个九九乘法表
<style>
span {//定义样式
display: inline-block;
width: 68px;
height: 25px;
margin: 3px;
}
</style>
<script>
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write('<span>' + j + '×' + i + '=' + j * i + '</span>');
}//×表示的是乘号[*X]
//document.white[页面打印]
document.write('<br>');//换行
}
</script>
求阶乘之和
// 求阶乘的和
// var sum = 0;
// var n = 1;
// for (var i = 1; i <= 20; i++) {
// n *= i; // 计算的是n = n * i
// sum += n;
// }
// console.log(sum)//控制台打印输出
经典的百元买白鸡
// 2. 百钱买百鸡
// 给你100元 需要买100只鸡 钱必须花完
// 公鸡5元1 母鸡3元1 小鸡1元3
// 请问能买多少只公鸡 母鸡 和 小鸡
// x+y+z = 100
// 5x+3y+1/3z = 100
// 假设公鸡为x 母鸡为y 小鸡为z
for (var x = 0; x < 20; x++) {
for (var y = 0; y < 33; y++) {
for (var z = 0; z < 99; z++) {
if (x + y + z == 100 && x * 5 + y * 3 + z * 1 / 3 == 100) {
console.log('x:' + x + ',y:' + y + ',z:' + z)
}
}
}
}
使用for循环作出1000以内的三位数
// 水仙花数 是一个三位数
// 它是自幂数的一种
// 指的是 这个数的 个位3次方+十位3次方+百位3次方 等于这个数
// 153 == 1+125+27
// 找出所有的水仙花数
// 256 /10 25.6%10 5
// 256%100 56/10
for (var i = 100; i <= 999; i++) {
var digit = i % 10; // 获得个位
var ten = parseInt(i % 100 / 10); //获得十位
var hund = parseInt(i / 100); //获得百位
if (digit * digit * digit + ten * ten * ten + hund * hund * hund == i) {
console.log('水仙花数:' + i);
}
}
四位数值以内水仙花数
// 水仙花数 是一个三位数
// 它是自幂数的一种
// 指的是 这个数的 个位3次方+十位3次方+百位3次方 等于这个数
// 153 == 1+125+27
// 找出所有的水仙花数
// 256 /10 25.6%10 5
// 256%100 56/10
for (var i = 100; i <= 999; i++) {
var digit = i % 10; // 获得个位
var ten = parseInt(i % 100 / 10); //获得十位
var hund = parseInt(i / 100 / 10); //获得百位
var Hhund = parseInt(i / 1000); //获得千位
if (digit * digit * digit* digit + ten * ten * ten* ten + hund * hund * hund* hund + Hhund * Hhund * Hhund* Hhund== i) {
console.log('水仙花数:' + i);
}
}
判断用户输入的数是否是质数
//定义一个用户输入的变量
var i = prompt('请输入一个数:');
//第一种情况,排除偶数不是指数的情况
if(i<0 ){
alert('不是质数');
}
else if (i == 0 || i == 1) {
alert('你输入的' + i + '既不是质数也不是合数');
}
else if (i % 2 == 0 && i != 2) {
alert('你输入的数值' + i + '不是质数');
}
else if(i==3||i==5||i==7){
alert('你输入的数'+i+'是质数');
}
else if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
alert('你输入得数' + i + '不是质数');
}
else {
alert('你输入的数' + i + '是质数');
}
来源:CSDN
作者:qq_41435894
链接:https://blog.csdn.net/qq_41435894/article/details/103818656