流程控制语句
条件语句 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+' ');
}
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 for和while的写法区别
// 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/>")
}
如有问题,请留言,谢谢。