一,顺序控制
1.顺序控制:(如自增自减运算符)
依照代码的书写顺序来执行代码
- 单路分支
if (条件表达式) {
代码块
}
- 双路分支
if(){
}else{ //两条路可走 如果不满足if里面的条件则走else
}
- 多路分支(在双路分支的基础上增加几条路 )
if(条件表达式1){
代码块1
}
else if(条件表达式2){
.
.
.
}else{ // 如果条件表达式1满足的话 执行对应的代码块1
//否则往下继续执行else if 的条件 如果以上都不满足的话 执行else的代码块
}
2.嵌套分支
就是在if语句的基础上在嵌套一个if语句
if(条件表达式1){
if(条件表达式2){
代码块2
}else{
}
}else{
}
- 拓展
isNaN() 判断不是一个数字 不是一个数字 False 是一个数字 true
- switch分支
switch能写出来的用if都可以写出来 反之则不一定了
switch(条件){
case 值1:
代码块1
break;
case 值2:
代码块2
break;
default: //default是当以上都不满足则走default
代码块last
break;
}
举一个例子 判断一下输入的数字 然后显示对应星期
var x = prompt();
switch(x){
case 1:
alert("今天星期一");
break;//打断的意思
case 2:
alert("今天是星期二");
}
二,循环控制
因为需要写重复的代码 所以我们要用循环 for for in while do while
1.for循环
写法:for(初始值;范围;自增/自减){
执行代码块
}
假设 你需要将一个语句输出10遍
按照正常写法你可能只能这样输出
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
document.writeln("你在干嘛");
但是这样是不是很麻烦 如果用for循环只需要用三行代码就可以实现
for(var i = 1;i <= 10;i++){
document.writeln(i+"你在干嘛");
}
99乘法表写法
for(var i = 1;i<=9;i++){
for(var j = 1; j<=i;j++){
//判断
if(i == 3&&j ==3){
document.write("&bnsp;&bnsp;")
}
if(i == 3&&j ==4){
document.write("&bnsp;&bnsp;")
}
document.write(i+"*"+j+"="+i*j+" ")
}
document.writeln();
}
2.for in 遍历数组
循环遍历对象属性或者数组的值
var arr = {1,2,3,7,4,5,6};
for(var i in arr){
console.log(i)
}
for in 遍历对象
var obj = {
name:"侯旭",
age:"18",
ah:"rap说唱"
}
for(var i in obj){
console.log(obj[i])
}
3.while循环
写法: while(条件){
代码块
x++;
}
4.do while循环
var i = 0;
do{
document.writeln("666") //和while区别:不管条件对不对,至少执行一遍
}while(i<=10);
三.变量交换
var x = 10;
var y = 20;
var temp; //将x值和y值对换
//需要定义一个第三者
temp = x;
x = y
y = temp;
console.log(x);
console.log(y)
数组的反转
将数组中10 20 30 40 50 60 变成 60 50 40 30 20 10
思路:应该是这样进行对换位置
10 20 30 40 50 60
下标 0 1 2 3 4 5
那么下标为0的和最后一个交换,下标为1的和倒数第二个交换 那么我们会发现有什么规律吗?
0 5 交换 0 length-1-0
1 4 交换 1 length-1-1
2 3 交换 2 length-1-2
根据以上我们会得出一个对换的规律 i 和 length-1-i 进行对换位置
//数组反转
var arr = [10,20,30,40,50,60];
//反转的长度 是 长度/2 1 2 3 4 5 6 1和6对换 ...
for(var i = 0;i < arr.length/2;i++){
//创建第三方变量 进行交换
var num = arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i] = num;
}
console.log(arr);