跳出多层循环体(做标记)- 求最小公倍数
-99星星矩阵-99正斜三角-99反斜三角-侧边99正斜三角-九九乘法表-求任意个数字之和
专项练习
跳出多层循环体(做标记)
label: //(打断语句格式 label: 循环语句 break label)
for(var i=1;i<=5; i++){
//1 //1 2 3 4 5跳出
//2 //1 2 3 4 5跳出
//3 //1 2 3 4 结束循环
for(var j=1;j<=5;j++){
console.log(i,'---',j);
if(i==3 && j==4) break label
}
}
辗转相除法
var a = 18,b = 12;
var n =0; //中间值
var count = 1; //计数器
while(true){
console.log('执行了',count++,'次');//1 2
n = a%b//6 0
if(n == 0){
console.log("最大公约数是:",b);//6
break;
}
a = b;//12
b = n;//6
}
求最小公倍数
var num_1 = 18,num_2 = 12;//最初值不能变
var a = num_1,b = num_2;
var n =0;
var count = 1;
while(true){
console.log('执行了',count++,'次');//1 2
n = a%b //6
if(n == 0){
console.log("最大公约数是:",b);
break;
}
a = b;
b = n;
}
console.log("最小公倍数是:",num_1*num_2/b);//用最初值乘积除最大公约数,两数乘积=两数的最大公因数×两数的最小公倍数
9*9星星矩阵
for(var i = 1;i<=9;i++){
//1
//2
//3
//4
for(var j = 1;j<=9;j++){
document.write('* ')//1 2 3 4
}
document.write('<br/>')
}
document.write('<hr/>')
9*9正斜三角
for(var i = 1;i<=9;i++){
//1 //1
//2 //1 2
//3 //1 2 3
//4 //1 2 3 4
for(var j = 1;j<=i;j++){
document.write('* ')
}
document.write('<br/>')
}
document.write('<hr/>')
9*9反斜三角
for(var i = 1;i<=9;i++){
//1 //1 2 3 4
//2 //1 2 3
//3 //1 2
//4 //1
for(var j = 9;j>=i;j--){
document.write('* ')
}
document.write('<br/>')
}
document.write('<hr/>')
侧边9*9正斜三角
for(var i = 1;i<=9;i++){
//1 //1 2 3 4 //1
//2 //1 2 3 //1 2
//3 //1 2 //1 2 3
//4 //1 //1 2 3 4
for(var k=9;k>=i;k--){
document.write('  ')
}
for(var j =1;j<=i;j++){
document.write('* ')
}
document.write('<br/>')
}
document.write('<hr/>')
等腰三角形
for(var i = 1;i<=9;i++){
//1 //1 2 3 4 //1
//2 //1 2 3 //1 2
//3 //1 2 //1 2 3
//4 //1 //1 2 3 4
for(var k=9;k>=i;k--){
document.write(' ')
}
for(var j =1;j<=i;j++){
document.write('*')
}
document.write('<br/>')
}
document.write('<hr/>')
九九乘法表(频繁输出)
document.write(`<div>`)
for(var i = 1;i<=9;i++){
for(var j = 1;j<=i;j++){
document.write(`<span>${j} * ${i} = ${i*j}</span>`)
}
document.write('<br/>')
}
document.write(`</div>`)
document.write('<hr/>')
九九乘法表(一次输出)
var str = ''
str += '<div>'
// 注意:九九乘法表
for(var i = 1;i<=9;i++){
for(var j = 1;j<=i;j++){
// document.write(`<span>${i} * ${j} = ${i*j}</span>`)
str += `<span>${i} * ${j} = ${i*j}</span>`;
}
// document.write('<br/>')
str += '<br/>';
}
str += '</div>'
document.write(str)
函数求类型乘法表(定制性)
function fn(n){
console.log("fn我被调用了");
var str = ''
str += `<div>`
for(var i = 1;i<=n;i++){
for(var j = 1;j<=i;j++){
// document.write(`<span>${i} * ${j} = ${i*j}</span>`)
str += `<span>${i} * ${j} = ${i*j}</span>`;
}
// document.write('<br/>')
str += '<br/>';
}
str += '</div>'
document.write(str)
}
fn(7)
求任意个数字之和
思路:
+ 利用函数只是做功能的封装
=> 只帮我们把 求和的过程 封装起来
=> 当我执行完毕函数, 得到一个结果
+ 我们在函数外面拿到结果以后
=> 再来决定输出方式
function sumNumbers(){
var sum=0;
for(var i=0;i<=arguments.length-1;i++){
sum += arguments[i];
}
console.log(sum);
}
sumNumbers(1,3,5)//9
求arguments对象
function argumentsA(){
console.log(arguments);
}
argumentsA(234,1244,)
argumentsA(234,1244,235,1,41,421,1,)
argumentsA(2341,41,421,1,)
求质数函数
function fun(n){
for(var i = 2;i<=Math.sqrt(n);i++){ //Math.sqrt(n)是求平方根,验证质数只需到平方根
if(n % i == 0) return false
}
return true
}
for(var i = 100;i<=200;i++){
if(fun(i)){
console.log(i);
}
// 或者
fun(i) && console.log(i);
}