顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
例题 : 小明考了75分,学校规定60分或60分以上算及格。请编写一个程序对小明的分数经过判断后得出结论。
//小明的分数
var score = 75;
//进行判断
if(score >= 60 ){
console.log("及格!");
}else{
console.log("不及格!");
}
例题 : 老师要对班级同学们的成绩进行评优, 低于60分为不及格, 60 ~ 70 为及格,70 ~ 90为良好, 90以上为优秀。请编写程序判断。
//小明的分数
var score = 61;
if(score > 90){
console.log("优秀!");
}
else if(score > 70){
console.log("良好");
}
else if(score > 60){
console.log("及格");
}else{
console.log("不及格!");
}
JavaScript中 = = 只要内容相同结果就是true,= = = 则必须要内容和类型同时相同
var str = 123;
var str2 = "123";
console.log(str == str2); //true
console.log(str === str2); //false
&& 表示逻辑与,也就是必须两边都为真才能为真。 | | 表示逻辑或,也就是两边只要有一边为真结果就是真
switch语句和if语句表达的含义基本相同。其实switch语句很像if else if else结构。
var score = 90;
switch(score){
case 90 : console.log("优秀"); break;
case 70 : console.log("良好"); break;
case 60 : console.log("及格"); break;
default : console.log("不及格");
}
案例 : 输出0 ~ 9
var i = 0;
// i < 10 的意思就是说只要 i 的值小于10就一直循环,直到 i 不再小于10了就不再循环
while(i < 10){
console.log(i);
i = i + 1;
}
其实和刚刚的where循环很像,只是表达式换了地方而已,还有一个区别就是do where循环是先执行后判断,所以无论如何最少会执行一次
//等同于刚刚的写法
var i = 0;
// i < 10 的意思就是说只要 i 的值小于10就一直循环,直到 i 不再小于10了就不再循环
do{
console.log(i);
i = i + 1;
}while(i < 10);
for循环的表达方式和刚刚的where不太一样
//这句话通俗的意思是 i 从 0 开始执行,直到i不再<10为止。每次循环完一次i都自增一次
//可以暂时先这么理解
for(var i = 0; i < 10; i++){
console.log(i);
}
for(var i = 1; i < 10; i++){
for(var j = 9; j > 0; j--){
var res = i * j;
document.write(i , " * " , j , " = " , res , " ");
}
document.write('
');
}
//等同刚才
var i = 1;
while(i < 10){
var j = 9;
while(j > 0){
var res = i * j;
document.write(i , " * " , j , " = " , res , " ");
j--;
}
document.write('
');
i++;
}
var i = 1;
do{
var j = 9;
do{
var res = i * j;
document.write(i , " * " , j , " = " , res , " ");
j--;
}while(j > 0);
document.write('
');
i++;
}while(i < 10);
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
for(var i = 100; i < 1000; i++){
//注意这里要记得转换成整形,别弄出个浮点数出来
var a = parseInt(i/100);/*分解出百位*/
var b = parseInt((i/10)%10);/*分解出十位*/
var c = i%10;/*分解出个位*/
//判断
if((a * a * a + b * b * b + c * c * c) == i){
//得出结果
console.log(i);
}
}