if、switch 语句和 while、for 循环

吐槽君 分类:javascript

if

条件判断语句:可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则语句不执行

栗子?

var score = prompt("请输入你的期末成绩(0-100)")
if(score > 100 || score < 0 || isNaN(score)){
  alert("输入不合法");
}else{
  if(score == 100){
    alert("迪士尼三日游");
  }else if(score >= 80){
    alert("手办一个");
  }else if(score >= 60){
    alert("测试卷");
  }else{
    alert("棍子一根");
  }
}
//只要有一个语句执行,那就不会再往下执行
 

switch

也叫条件分支语句

switch(true){
  case score >= 60:
    console.log("合格");
    break;
  default:
    console.log("不合格");
    break;
}
 
  • 在执行时会一次将case后的表达式的值和switch后的条件表达式的值进行全等比较。
  • 如果比较的值为 true,则执行后续代码,可以使用break用来退出switch语句
  • 如果所有比较的结果都为 false,则只执行default

while循环

先判断再执行

  • 先对表达式进行求值判断
  • 如果值为 true,则执行循环体
  • 循环体执行完毕后,继续对表达式进行判断
  • 如果值为 true,则继续进行循环体
  • 直到值为 false,终止循环

栗子?

while (true) {
  var score = prompt("请输入你的期末成绩(0-100)");
  if (score >= 0 && score <= 100) {
    break;
  }
  alert("请输入有效的分数!!!");
}
if (score == 100) {
  alert("迪士尼三日游");
} else if (score >= 80) {
  alert("手办一个");
} else if (score >= 60) {
  alert("测试卷");
} else {
  alert("棍子一根");
}
 

for

while (true) {
for(初始化表达式; 条件表达式; 更新表达式){
  语句···
}
for(var i = 0; i < 10; i++){
  alert(i);
}
 
  1. 执行初始化表达式,初始化变量
  2. 执行条件表达式,判断是否执行循环
  3. 执行更新表达式,更新表达式执行完毕继续执行条件表达式

栗子?

var num = prompt("请输入一个大于 1 的整数:");
if (num <= 1) {
  alert("该值不合法");
} else {
  var flag = true;
  for (var i = 2; i < num; i++) {
    if (num % i == 0) {
      //如果 num 能对 i 进行整除,那么 num 的值就不是质数,比如(num=11,那么i 就是 2~10 直接的数字,11 无法整除,就说明 11 是质数。)
      flag = false;
    }
  }//for循环把所有num 能整除i 的数字都取出来
  if (flag) {
    alert(num + "是质数!!!");
  } else {
    alert(num + "不是质数");
  }
}
 

嵌套for循环

内部for循环执行完再执行外的for循环

//场景:打印2~100 之间的质数
for (var i = 2; i <= 100; i++) {
  var flag = true;
  for (var j = 2; j < i; j++) {
    if (i % j == 0) {
      flag = false;
    }
  }
  if (flag) {
    console.log(i);
  }
}
 

回复

我来回复
  • 暂无回复内容