JS比较大小、冒泡排序与求和
一 比较大小
1.求两个数中的最大值
(已简化为三元分支语句)
<script type="text/javascript">
function getMax(num1, num2) {
return num1 > num2 ? num1 : num2;
}
console.log(getMax(10,20));
</script>
2.求三个数中的最大值
function getThreeMax(x, y, z) {
return x > y ? (x > z ? x : z) : (y > z ? y : z);
}
console.log(getThreeMax(10,2,24));
3. 使用math对象的max方法
console.log(Math.max(10,1,9,100,200,45,78));//找最大
console.log(Math.min(10,1,9,100,200,45,78));//找最小
二 冒泡排序
冒泡排序:把所有的数据按照一定的顺序进行排列(从小到大,从大到下)
例如5个数字进行比较,过程:
so,声明两个变量,一个表示比较的轮数,另一个表示次数
var arr = [10, 0, 100, 20, 60, 30];
//循环控制比较的轮数
for (var i = 0; i < arr.length - 1; i++) {
//控制每一轮的比较的次数
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
三 求和
1. 求100以内所有3的倍数的和
两种不同写法
【while】
var i = 1;
var sum = 0;
while (i <= 100) {
if (i % 3 == 0) {
sum += i;
}
i++;
}
console.log(sum);
【do…while】
var i = 1;
var sum = 0;
do {
if (i % 3 == 0) {
sum += i;
}
i++;
} while (i <= 100);
console.log(sum);
while循环特点:先判断,后循环,有可能一次循环体都不执行, do-while循环特点:先循环,后判断,至少执行一次循环体
2. 求1-100之间所有的奇数的和
var i = 1;//计数器
var sum = 0;//存储和的
while (i <= 100) {
if (i % 2 != 0) { //偶数时去掉!
sum += i;
}
i++;
}
console.log(sum);
3. 求一个数组中所有数的和
function getArraySum(array) {
var sum = 0;
for (var i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;//必须要返回值,否则接下来console调用不到值
}
console.log(getArraySum([1, 2, 3, 4, 5, 6]));//bug:此处中括号前不需要再加array
四 判断是否是质数
function isPrimeNumber(num) {
for(var i=2;i<num;i++){
if(num%i==0){
//说明有一个数字整除了,就没有必要向后继续整除了,此时就已经验证出不是质数
return false;
}
}
return true;
}
console.log(isPrimeNumber(8)?"是质数":"不是质数");
To be continued…
持续更新中