2021-09-16---JavaScript基础语法:循环结构
循环结构
一,循环结构
满足一定条件后,重复执行相同或相似的代码
二,循环思想(循环三要素)
- 从哪里开始
- 到哪里结束
- 步长(步进)
三、实现循环的语句
- while
- do whie
- for
四、语法
1.while : 当型循环
循环初值;
while(循环条件){
语句组;
步长;
}
2. do while : 直到型循环
循环初值;
do{
语句组;
步长;
}while(循环条件);
3.for : 多功能循环
for(循环初值;循环条件;步长){
语句组;
}
五、额外的格式
循环初值;
for(;循环条件;步长){
语句组;
}
循环初值;
for(;1;){
语句组;
步长;
}
六、无限循环(死循环)
while(1){}
do{} while(1);
for(;1;){}
七、循环之间的区别
1.while:
(1)当型循环,先判断条件,后执行语句
(2)第一次条件为false时,一次都不执行
(3)在循环次数不确定时,建议使用
2.do while:
(1)直到型循环,先执行语句,再判断条件
(2)第一次条件为false时,至少执行一次
(3)在循环次数不确定时,建议使用
3.for:
(1)当型循环,先判断条件,再执行语句
(2)第一次条件为false时,一次都不执行
(3)在循环次数确定时,建议使用
八、break关键字VScontinue关键字
break关键字
- 用于switch语句中,跳出switch语句
- 用于循环语句中,跳出当前循环
continue关键字
用于循环语句中,跳出本次循环,提前进入下一次循环
九、循环应用
<script>
/*
(三)输出三角形
****
***
**
*
*/
function square1(){
var str = '';
for(var i = 1;i <= 4;i ++){
for(var j = 1;j <= 5-i;j++){
str += '*'
}
str += '\n';
}
console.log(str);
}
// square1();
/*
(四) 输出三角形
*
**
***
****
*/
var square2 = function(){
var str = '';
for(var i = 1;i <= 4;i ++){
for(var j = 1;j <= 4-i;j ++){
str += '';
}
for(var j = 1;j <= i;j ++){
str += '*';
}
str += '\n';
}
console.log(str);
}
// square2();
/*
(五)输出三角形
****
***
**
*
*/
function square3(){
var str = '';
for(var i = 1;i <= 4;i ++){
for(var j = 1;j <= i-1;j ++){
str += ' ';
}
for(var j = 1;j <= 5-i;j ++){
str += '*';
}
str += '\n';
}
console.log(str);
}
// square3();
/*
(六) 输出三角形
* 1 1
*** 2 3
***** 3 5
******* 4 7
*/
var square4 = function(){
var str = '';
for(var i = 1;i <= 4;i++){
for(var j = 1;j <= 4-i;j ++){
str += ' ';
}
for(var j = 1;j <= 2*i-1;j ++){
str += '*';
}
str += '\n'
}
console.log(str);
}
// square4();
/*
(七) 输出
*+******* ****””**** 1 7
**+***** ****””^^**** 2 5
***+*** ****””^^^^**** 3 3
****+* ****””^^^^^^**** 4 1
*/
function square5(){
var str = '';
for(var i = 1;i <= 4;i ++){
for(var star = 1;star <=i;star ++){
str += '*';
}
str += '+';
// for(var star = 4;star <= -2*i-1;star --){
// str += '*';
// }
str += ' '
for(var star = 1;star <= 4;star ++){
str += '*';
}
for(var mark = 1;mark <= 4;mark++){
str += "'"
}
for(var not = 1;not <= 2*i-2;not ++){
str += '^'
}
for(var star = 1;star <= 4;star ++){
str += '*';
}
str += '\n';
}
console.log(str);
}
// square5();
/*
(八) 输出九九乘法表
*/
var mult = function(){
var str = '';
for(var i = 1;i <=9;i ++){
for(var j = 1;j <= i;j++){
str += j + '*' + i + '=' + i*j + ' ';
}
str += '\n';
}
console.log(str);
}
// mult();
/*
(九) 输出一元钱的兑换方案(1 角 2 角 5 角)
a = 1角 至少0张1角 最多10张1角
b = 2角 至少0张2角 最多5张2角
c = 5角 至少0张5角 最多2张5角
sum = 1元
*/
var fnMoney = function(){
var str = '';
for(var a = 0;a <= 10;a ++){
for(var b = 0;b <= 5;b ++){
for(var c = 0;c <= 2;c ++){
if(a*1 + b*2 + c*5 === 10){
str += a + '张1角' + b +'张2角' + c +'张5角' + '\n';
}
}
}
}
console.log(str);
}
// fnMoney();
var fnMoney = function(){
var str = '';
for(var a = 0;a <= 10;a ++){
for(var b = 0;b <= 5;b ++){
for(var c = 0;c <= 2;c ++){
if(a*1 + b*2 + c*5 === 10){
str += a + '张1角' + b +'张2角' + c +'张5角' + '\n';
}
}
}
}
return str;
}
console.log(fnMoney());
/*
(十) 打印 100~200 之间所有能被 3 或者 7 整除的数
能被3整除,i % 3 === 0;
能被7整除,i % 7 === 0
*/
var num = function(){
var str = '';
for(var i = 100;i <= 200;i++){
if(i % 3 === 0 || i % 7 ===0){
str += i + ' ';
}
}
console.log(str);
}
// num();
/*
(十一) 计算 100 的阶乘
*/
var fn_mul = function(){
var mult = 1;
for(var i = 1;i <= 100;i ++){
mult *= i;
}
console.log(mult);
}
// fn_mul();
/*
(十二) 求 100-999 之间的水仙花数。abc =ܽa^3+b^3+c^3;
百位:a=parseInt(abc/100);
十位: b=parseInt(abc/10)%10;
个位: c=abc%10;
// var a=parseInt(i/100);
// var b=parseInt(i/10)%10;
// var c=i%10;
*/
function fu_mult(){
var str = '';
for(var i = 100;i <= 999;i ++){
if(i == ( parseInt(i/100)*parseInt(i/100)*parseInt(i/100) + (parseInt(i/10)%10)*(parseInt(i/10)%10)*(parseInt(i/10)%10) + (i%10)*(i%10)*(i%10)) ){
str += i + ' ';
}
}
console.log(str);
}
// fu_mult();
/*
二、 求 1+2!+3!+...+20!的值
*/
var sum = 0,mult = 1;
for(var i = 1;i <= 20;i ++){
for(var j = 1;j <= i;j++){
mult *= j;
}
sum += mult;
}
console.log(sum);
//首先第一圈的循环是1-20
//然后第二圈循环是求每一个数的阶乘。要保证在求这个数的阶乘之前,mult的值为1,而不是之前循环的所有求过的数的阶乘。
//上面这种写法,在第二次循环的时候,mult的初值不是初始的1,而是第一次循环过后1的阶乘的值。
var sum = 0;
for(var i = 1;i <= 20;i ++){
var mult = 1;//要注意求每一个数的阶乘前,都要保证mult的值为初值,而没有上一个数的阶乘。
for(var j = 1;j <= i;j++){
mult *= j;
}
sum += mult;
}
console.log(sum);
</script>