算术运算符小补充:
1.自增运算符:++
“++”是自增运算符,它指的是在原来值的基础上加1,i++表示“i=i+1”。该运算符有2种情况:(1)i++ :“i++”指的是在使用i之后,使i的值加1。
(2)++i :“++i”指的是在使用i之前,先使i的值加1。
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
var a=2;
var sum=0;
a++: 表示的是a=a+1 先赋值后运算
++a: 表示的是a=a+1 先运算后赋值
// sum=a++ + ++a 结果为: sum=? a=?
// a-->3 --->4
// sum=2 + 4=6
sum=++a + a++ + a++ + ++a
// a=6-->7
// sum=16-->16
// a=3-->4-->5-->6
// sum=3 + 3 + 4 + 6=16
var a1=2,b1=3;
sum=a1++ - ++b1 + b1++ - ++a1;
// a1=3-->4
// b1=4-->5
// sum=2 - 4 + 4 - 4 = -2
</script>
</head>
<body>
</body>
</html>
2.自减运算符:--
“--”是自减运算符,它指的是在原来值的基础上减1,i-- 表示“i=i-1”。该运算符同样有2种情况:(1)i-- :“i--”指的是在使用i之后,使i的值减1。
(2)--i:“--i”指的是在使用i之前,先使i的值减1。
案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// 自减分为两种情况:
// a-- : 表示先赋值后运算
// --a : 表示先运算后赋值
//sum=a++ + --b - --a + a-- + b-- + ++b;
// a=?
// b=?
// sum=?
// a=3 -->2 -->1
// b=2 -->1-->2
// sum=2 + 2 - 2 + 2 + 2 + 2=8
alert(sum);
// alert(a);
// alert(b);
</script>
</head>
<body>
</body>
</html>
一.JavaScript流程语句
JavaScript对程序流程的控制跟其他编程语言是一样的,主要有3种:
(1)顺序结构
(2)选择结构
(3)循环结构
1. 顺序结构
顺序结构是JavaScript中最基本的结构,说白了就是按照从上到下、从左到右的顺序执行。
2. 选择结构
选择结构是按照给定的逻辑条件来决定执行的顺序,有单向选择、双向选择和多向选择之分,但是程序在执行过程中都只是执行其中的一条分支。
上图中的左边是“单向选择结构”,右边是“双向选择结构”
对于选择结构,我们至少要掌握一下几种方法,
(1)if语句;
(2)if……else语句;
(3)if……else if……语句;
(4)if语句的嵌套;
(5)switch语句;
(1) 单向选择语句结构
if(条件){语句体}
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// 单向选择语句结构:
// if(条件){语句体}
if(true){ //判断条件为真,执行花括号中语句
// alert('条件为真');
}
// if(false){ //条件为假时,执行if之后的程序
// alert('条件为假');
// }
// document.write('条件为假时,执行if之后的程序');
// 第二种写法: 前提条件,语句体重是单一的.
// if(3>0)
// document.write('条件为真');
// document.write('条件为假');
// 注: 根据语法规则 添加花括号是必须的
// if(0>3){
// document.write('条件为真');
// }
// document.write('条件为假');
// var a=3,b=5;
// if(a<10 && b>6){
// document.write('条件为真');
// }
//
// if(a<10 || b>6){ //一真 一假 为真
// document.write('条件为真');
// }
</script>
</head>
<body>
</body>
</html>
(2)双向选择语句结构
if(条件){执行体}else{执行体}
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// if(true){
// document.write('tiaojian为真');
// }else{
// document.write('条件为假');
// }
var num1=5,num2=4;
if(num1*num2>20){
document.write('条件成立');
}else{
document.write('条件不成立');
}
var a=4; var b=2;
if(a!=b){ //条件结果为true
document.write('a不等于b');
}else{
document.write('等于');
}
</script>
</head>
<body>
</body>
</html>
(3)多向选择语句结构
if(条件1){
语句1
}else if(条件2){
语句2
}else if(条件3){
语句3
}else{
当以上条件都不满足时,则执行的语句体
}
注:if..else if 如果前一个条件为真时,后面的将不会再执行
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// var strCore=prompt('请输入成绩:',0);
alert(typeof strCore);
// if(strCore>60 && strCore<=80){
// document.write('及格');
// }else if(strCore>80 && strCore<=90){
// document.write('还不错哦');
// }else if(strCore>90 && strCore<=100){
// document.write('你棒棒滴');
// }else{
// document.write('你考的成绩不在范围内');
// }
//根据用户输入的成绩的等级A,B,C,D来查询成绩等级所属的范围
var mess=prompt('请输入成绩等级','A');
if(mess=='A'){ //判断两个值是否相等
document.write('90-100之间');
}else if(mess=='B'){
document.write('60-90之间');
}else{
document.write('没有你输入的等级');
}
</script>
</head>
<body>
</body>
</html>
(4)选择语句嵌套
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var maths=29; var chinese=99;
if(maths>60){ //条件不成立,不会执行语句体
// if(chinese<100){
// document.write('还可以');
// }
// }
if(maths<60){
if(chinese>100){
document.write('条件为真');
}
document.write('条件为假');
}
if(maths<60){
if(chinese<100){
document.write('条件为真');
}
document.write('条件为假')
}
</script>
</script>
</head>
<body>
</body>
</html>
案例:24小时制,但是在中午14点的时候,告诉用户是下午一点.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var time=new Date();
var hours=time.getHours();
// alert(time);
if(hours>6 && hours<=12){
document.write('您好,现在是'+hours+'点了');
}else if(hours>12 && hours<18){
document.write('您好,'+(hours-12)+'点了');
}else if(hours>=18 && hours<24){
document.write('您好,现在是'+(hours-12)+'点了');
}
</script>
</script>
</head>
<body>
</body>
</html>
(5)switch语句结构
switch(值){
case:
break; //当条件满足时,添加break退出整个选择语句,不会在执行之后的程序
default: // 当以上条件都不满足时,执行的语句体;可有可无,但是写它是规范.
break;
}
案例1:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var num1=0;
switch (num1){
case 60:
document.write('成绩为60分');
break;
case 70:
document.write('成绩为70分');
break;
case 80:
document.write('成绩为80分');
break;
default:
document.write('成绩不在范围内');
break;
}
</script>
</head>
<body>
</body>
</html>
案例2:
var num1=73;
switch (num1>0){
case num1>60 && num1<=70:
document.write('成绩优异');
break;
case num1>70 && num1<=80:
document.write('成绩良好');
break;
case 80:
document.write('成绩为80分');
break;
default:
document.write('成绩不在范围内');
break;
}
3.循环结构
循环结构即根据代码的逻辑条件来判断是否重复执行某一段程序。若逻辑条件为true,则进入循环重复执行;若逻辑条件为false,则退出循环。
循环结构语句主要包括3种:
(1)while语句;
(2)do……while语句;
(3)for语句;
a. while语句
while语句是条件判断语句,也是循环语句。
while (逻辑条件){ //小括号中写逻辑条件,这个条件作为最终退出循环的条件
循环体
}
案例1:输出5~10之间的数字
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var num1=5;
while(num1<10){ //判断条件为真, 开始执行循环体
num1++; //num1=num1+1
if(num1==10){
break;
}
document.write(num1);
}
</script>
</script>
</head>
<body>
</body>
</html>
案例2:输出1-100之间的偶数
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var num2=0;
while (num2<=100){
num2++;
// 第一种方式输出1-100之间的偶数
// num2+=2;
// document.write(num2+'<br />');
// 第二种方式输出1-100之间的偶数
if(num2%2==0){
document.write(num2+'<br />');
}
}
</script>
</head>
<body>
</body>
</html>
使用while语句要注意以下几点:
(1)应该使用大括号“{}”包含多条语句,即使是一条语句也最好使用大括号;
(2)在循环体中应该包含使得循环可以退出的语句,比如上面的“num++”。对于循环体,要是没有条件,循环就会无休止地运作下去,变成一个“死循环”,从而可能导致浏览器崩溃;
b. do…while语句
“do…while语句”跟while语句是非常类似的,唯一的区别在于:while语句先判断是否符合条件,然后再执行循环体语句;do…while语句先执行循环体语句一次,然后再判断是否符合条件
结构:do{
循环体
}while(最终退出循环的条件)
注; 对于do....while循环,首先程序执行的是循环体中代码块,其次才判断 while的条件,do...while: 条件不成立时,都会执行一次循环体,
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var num1=5;
do{
num1++;
if(num1==10){
break;
}
document.write(num1);
}while(num1>10)
</script>
</head>
<body>
</body>
</html>