算法五大特性:输入0个多个 输出1或多个 确定性 可行性 有穷性
四要求:健壮性(靠if--else实现) 可读性 正确性 时间效率高存储量低
三大结构
顺序结构:
1.输入语句
2.输出语句
3.赋值
选择结构:
if更加全面 如下
单分支:
if(判断条件){
满足条件执行的判断语句
}
双分支:
if(判断条件){
执行语句
}
else{
执行语句
}
多分支:
if(判断条件){
执行语句
}
else if(判断条件){
执行语句
}
else{
执行语句
}
<script>
var input=parseInt(prompt("请输入星期几:")) /*弹出输入框*/
if (input<=0 || input>7){
alert('别瞎输')
}
else{
if (input<6&&input>0){
alert('workday!')
}
else{
alert('weekend')
}
}
</script>
switch更加清晰,处理流程清晰的选择,如下:
switch(条件){#条件最终结果只能是整型或字符串,是===类型也要一样
case 表达式1:
代码;
break;
case 表达式2:
代码;
break;
case 表达式3:
代码;
break;
default: 相当于else 处理剩余的情况
代码
}
case和default可以任意位置 并且default可有可无
输入成绩判断分数等级,代码如下:
if-else if-else实现
var input=parseInt(prompt('请输入分数'))
if(input<=100&&input>=90){
console.log('优秀')
}
else if(input>=80&&input<90){
console.log('良好')
}
else if(input>=70&&input<80){
console.log('普通')
}
else if(input>=60&&input<70){
console.log('及格')
}
else if(input<60){
console.log('出去')
}
else{
console.log('拜拜')
}
switch实现
a=input/10
switch (parseInt(a)) {
case 10: //case后面的表达式其实是switch括号里的结果,不是表达式。
console.log('优秀')
break
case 9:
console.log('优秀')
break
case 8:
console.log('良好')
break
case 7:
console.log('普通')
break
case 6:
console.log('及格')
break
default:
console.log('出去!')
}
循环结构
三种:for while do-while
三要素:1.初始值 2.循环控制条件 3.步长增量
do-while 先执行一次,后判断。(用在游戏上,让他先玩一次)
while 先判断后执行
for (赋初值;控制条件;步长){
循环体;
}
var sum=0
for(var i=0(表达式1);i<=100(表达式2);i++(表达式3)){
sum+=i;(表达式4)
}
执行顺序12432432
var i=0,sum=0;
while(i<=100){
sum+=i;
i++;
}
for用在哪里 循环次数明确的情况 (例:顺序查找,次数明确)
while可以在循环次数不明确的情况(例:二分查找,不知道查找的次数)
赋初值
do{
循环代码;
增量;
}while(控制条件);
求从1到100的和:
sum=0
for (var i=1;i<=100;i++ ){
sum+=i
}
console.log(sum)
i=1
sum=0
while (i<101){
sum+=i
i+=1
}
console.log(sum)
start=parseInt(prompt('输入开始值'))
end=parseInt(prompt('输入结束值'))
console.log((start+end)*(end-start+1)/2)