JavaScript基础学习03

流程控制语句

条件语句 if和switch
  • 条件if语句

语法一:if (condition) { statement1;//陈述内容 }
语法二:if (condition) { statement1; } else { statement2; }
语法三:if (condition) { statement1; } else if { statement2; }else{ statement3; }

示例一:

var password=prompt("请设置您的密码");
// 判断密码的长度,如果不是6位,否则
if(password.length!=6){
   alert("请输入6位的数字密码");
}else{
      // 如果密码是非数字,否则是数字
   if(isNaN(password)){
      alert("密码必须要是数字");
   }else{
      alert("密码设置正确");
   }
}

示例二:

var str="abc123";
var num=parseInt(str);//parseInt类型转换 (基础学习01)
if(num==NaN){   // NaN和任何内容都不相等,包括它本身
   alert(NaN);
}else if(num==123){
     alert(123);
}else if(typeof num=="number"){
   alert("num");
}else{
     alert("str");
}
// 弹出num
  • 条件switch语句

语法:switch(expression //只写表达式 不要写条件语句){
case value:statement;
break;
case value:statement;
break;
default:statement;
}

示例一:

var week=new Date().getDay();
var weekstr="";
console.log(week);  // 0-6
// 多条件的判断 switch
switch(week){
   case 0:
   weekstr="日";
   break;  // 退出
   case 1:
   weekstr="一";
   break;
   case 2:
   weekstr="二";
   break;
   case 3:
   weekstr="三";
   break;
   case 4:
   weekstr="四";
   break;
   case 5:
   weekstr="五";
   break;
   default:
   weekstr="六";
}
document.write("今天是星期"+weekstr);

示例二:

var score=prompt("请输入您的成绩");
var level="";
// 成绩的类型:如果成绩是非数字
if(isNaN(score)){
   alert("成绩必须是数字");
}else{
   if(score<0 || score>100){
      alert("成绩输入有误!");
   }else{
      switch(parseInt(score/10)){
          case 0:
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
          level="不及格";
          break;
          case 6:
          level="及格";
          break;
          case 7:
          level="一般";
          break;
          case 8:
          level="良";
          break;
          case 9:
          level="优";
          break;
          default:
          level="满分";
      }
      alert("您的成绩是"+level);
   }
}
循环语句 for和for-in while和do…while
循环与循环嵌套原则:

1.外层为假时内层不执行。
2.先执行外层再执行内层,直至内层的条件为假时再返回外层去执行。

  • 循环for语句——- for循环是对数组的元素进行循环,而不能引用于非数组对象。

语法:for(语句1;语句2;语句3){
被执行的代码块;
}
示例一:

// 输出1-100
// 循环的初始值   // 循环条件  变量的变化
for(var i=1;i<=100;i++){
   document.write(i+'<br />'); 
}
// 输出99 97 95 ...3 1 
for(var m=99;m>=1;m-=2){
   console.log(m); 
}
alert(m);   // 因为1>=1成立,还要最后运行一次 1-2=-1

示例二:

for(var i=1;i<=3;i++){
  document.write(i+'<br /><br />'); 
  for(var j=1;j<=5;j++){
     document.write(j+'<br />'); 
  }
}

示例三:

//乘法表
for(var i=1;i<=9;i++){
    for(var j=1;j<=i;j++){
       document.write(j+'*'+i+'='+j*i+'&nbsp;&nbsp;');   
    }
    document.write('<br />');
}
  • 循环for…in 语句——用于对数组或者对象的属性进行循环操作。

语法:for ( 变量 in 对象 ) { 在此执行代码 }

//for和for...in区别:
var array=[1,2,3,4,5];//定义一个数组,实现数组元素的遍历。
//用for...in实现
for(var i in array){
    alert(array[i]);//数组的元素
}
//用for循环实现
for(var i=0;i<array.length;i++){
    alert(array[i]);//数组的元素
}
  • 循环while语句——先判断条件再执行脚本

语法:while(条件){ 需要执行的代码;}

示例一:

// 输出1-100  forwhile的写法区别
// for
for (var i = 1; i <=100; i++) {
  document.write(i+'<br />');
};
// while 括号内只写条件
var i=1;
while(i<=100){
   document.write(i+'<br />'); 
   i+=1;  // i++
}

示例二:

//计算1到100的和
var sum=0;   // sum和
var n=1;
while(n<=100){
   sum+=n;   // sum=sum+n;
}
document.write(sum);
  • 循环do…while语句——先执行脚本再判断条件

语法:do{需要执行的代码;}while(条件)
//这种语法的循环至少要被执行一次。

示例一:

//输出1-10之间的偶数
var j=1;
do{
  if (j%2==0) {
    document.write(j+'<br />');
  };
  j++;
}while(j<=10);
//虽然16大于10,但是先执行一次在判断条件,所以输出16
var j=16;
do{
  if (j%2==0) {
    document.write(j+'<br />');
  };
  j++;
}while(j<=10);

for:适合已知循环次数的循环体

while: 适合未知循环此时的循环体

示例:彩色的数字

for(var i=0,col="";i<=12;i++){
   switch(i%4){
      case 0:
      col="red";
      break;
      case 1:
      col="green";
      break;
      case 2:
      col="blue";
      break;
      default:
      col="orange";
   }
   document.write('<font color="'+col+'">'+i+'</font><br>');
}
break语句——立即退出循环。
continue语句——结束本次循环,继续开始下一次。

示例一:

//break
num=0;
for (var i = 1; i < 10; i++) {
  if (i%5==0) {
    break;
  };
  document.write(i); //1 2 3 4
  num++;
};
document.write('<br />'+num); // 4
//continue
num=0;
for (var i = 1; i < 10; i++) {
  if (i%5==0) {
    continue;
  };
  document.write(i); //1 2 3 4 6 7 8 9
  num++;
};
document.write('<br />'+num); //8 i=5跳过 i=6时 num=5

示例二:

//break
for(var s=0,j=1;j<=10;j++){
   if(j%5==0){
      continue;
   } 
   s+=j;
   // j=1,s=1;j=2,s=3;j=3,s=6;j=4,s=10
}
document.write(s);//10
//continue
for(var s=0,j=1;j<=10;j++){
   if(j%5==0){
      continue;
   } 
   s+=j;
   // j=1,s=1;j=2,s=3;j=3,s=6;j=4,s=10,j=5,s=10;j=6,s=16,j=7,s=23;j=8,s=31;j=9,s=40,j=10
}
document.write(s);//40

示例三:

//输出所有0-50之间除20和30之外的5的倍数
for(var n=0;n<=50;n+=5){
   if(n==20 || n==30){
      continue;
   }
   document.write(n+"<br/>")
}

如有问题,请留言,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值