用for循环打出三角形、倒三角形、金字塔、99乘法表
三角形:
打出如图三角形,分析行数与*个数的关系,用for循环
for(var i=0;i<5;++i){//i表示行数
var str="";//定义str 输出为空
for(var j=0;j<i*2+1;++j){//j表示输出*数,行数与*个数的关系2*i+1
str=str+"*" ;//拼接字符串
}
console.log(str);
}
当i=0时,输出空,==> j=0,j<1 ==>输出str,
i=1时,输出空,==> j=0,j<3 ==>输出str ; j=1,j<3 ==>输出str ; j=2,j<3 ==>输出str,
倒三角形
分析行数与*个数的关系:9-i*2
for(var i=0;i<5;++i){//i表示行数
var str="";//定义str 输出为空
for(var j=0;j<9-i*2;++j){//j表示输出*数
str=str+"*" ;//拼接字符串
}
console.log(str);
}
金字塔:
可看做两个for循环,前面用空格表示
for(var i=0;i<5;++i){//i表示行数
var str="";//定义str 输出为空
for(var k=0;k<4-i;++k){
str=str+" ";//输出空格
}
for(var j=0;j<i*2+1;++j){//j表示输出*数,行数与*个数的关系2*i+1
str=str+"*" ;//拼接字符串
}
console.log(str);
}
例:输出 9*9 口诀。
var str = "";
for (var i = 0; i < 10; ++i) {
str = "";
for (var j = 1; j <= i; ++j) {//每行输出数
str += j + '*' + i +'='+i*j+ ' ';
}
console.log(str);
}
数组练习:
数组遍历,取最大值、最小值
//题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
var arr1 = prompt("输入数组,以,分隔");
var arr1 = arr1.split(','); //以逗号区分,建立数组
console.log(arr1);
var arr = arr1.map(Number); //将数组变为数字数组
var max = arr[0];//定义第一个数为最大数
var min = arr[0];//定义第一个数为最小值
for (var i = 0; i <= arr.length; ++i) {
if (max < arr[i]) {
max = arr[i];//循环比较找最大值
var a = i;
}
}
for (var i = 0; i <= arr.length; ++i) {
if (min > arr[i]) {
min = arr[i];//循环比较找最小值
var b = i;
}
}arr[a] = arr[0];//将第一个数赋值给最大值位置
arr[0] = max;//将最大值赋值给第一个数位置arr[b] = arr[arr.length - 1];//将最后一个数赋值给最小值位置
arr[arr.length - 1] = min;//将最小值赋值在最后一个数位置
console.log(arr);