流程控制: 指的是控制代码的执行顺序:
1、顺序流程控制:编译器默认
2、选择流程控制:if、switch
3、循环流程控制:for,while, do…while
顺序流程:代码按照排版从上往下依次执行, 排版先后执行代码
选择流程控制(分支结构):
有选择性的执行代码: 语法规则:
if(条件) { //条件的结果必须是布尔值
代码片段
}
if()里面结果为真,就执行{}里面的代码, 如果结果为假,就不执行,而执行大括号后面的代码
if(yushu == 0) {
document.write(shu+"/ 2 结果为:" + jieguo);
}
if(yushu != 0 ) {
document.write("不能被整除");
}
多个if编写起来代码复杂度很大,所以提供另外一种双选择的语法:
if(条件) {
}else {
}
如果if条件为真,则执行第一个大括号内容,否则执行else后面大括号内容。
在实际开发过程当中,由于条件可能还会超过2个,所以需要使用另外一种多选择语法,
if(条件1) {
//代码块1
} else if(条件2) {
//代码块2
}else if(条件3) {
//代码块3
}.....{
}else {
//代码N
}
var gongzi = 15000;
if(gongzi <= 3500) {
document.write("不交税!");
} else if(3500< gongzi && gongzi <= 5000){
var shui = (gongzi - 3500) * 0.03;
document.write("应该要交税:" + shui);
} else if(5000< gongzi && gongzi <= 8000){
var shui1 = 1500 * 0.03;
var shui2 = (gongzi - 5000) * 0.1;
document.write("应该要交税:" + (shui1 + shui2));
} else if(8000< gongzi && gongzi <= 12500){
var shui1 = 1500 * 0.03;
var shui2 = 3000 * 0.1;
var shui3 = (gongzi - 8000) * 0.2;
document.write("应该要交税:" + (shui1 + shui2 + shui3));
} else if(12500< gongzi && gongzi <= 38500){
var shui1 = 1500 * 0.03;
var shui2 = 3000 * 0.1;
var shui3 = 4500 * 0.2;
var shui4 = (gongzi - 12500) * 0.25;
document.write("应该要交税:" + (shui1 + shui2 + shui3 + shui4));
}else {
document.write("数字错误!");
}
另外一种多分支的体现: switch
switch(变量名) {
case 值1:
代码块;
break;
case 值2:
代码块;
break;
default:
代码块;
break;
}
var shuzi = 3;
switch(shuzi) {
case 1:
document.write("星期一");
break;
case 2:
document.write("星期二");
break;
case 3:
document.write("星期三");
break; //结束,后面就不判断了
case 4:
document.write("星期四");
break;
case 5:
document.write("星期五");
break;
case 6:
document.write("星期六");
break;
case 7:
document.write("星期天");
break;
default:
document.write("数字错误!");
break;
}
循环流程控制:循环就是重复执行某一段代码,
for(定义表达式; 判断表达式; 步长表达式) {
代码块
}
循环打印一句话:
for(var i = 0; i<500; i++) {
document.write("明天星期五!要放假了!");
}
求1-100的和
var he = 0;
for(var i=0; i<=100; i++) {
he = he + i;
//document.write(i);
}
//判断1-100有哪些数能被11整除,并输出
for(var i =1; i<=100; i++) {
if(i % 3 == 0) {
document.write(i + "能被3整除!");
}
document.write("<br>");
}
关键字break 、continue
结束整个循环: 使用关键字break
var houdu = 0.08;
var gaodu = 8848130;
/*
1: houdu*2 = 0.16
2:houdu*2 = 0.32
*/
for(var i=0; i<100; i++) {
houdu = 2*houdu;
//当i=26的时候,程序就已经得到结果,后面的就没有必要执行了。break;
if(houdu >= gaodu) {
document.write(i);
document.write("<br>");
break;
}
}
当houdu>=高度的时候,我们的if就进入,然后执行到break, 循环就结束,表示后面的代码都不执行了
for(var j=0; j<5; j++) {
for(var i=0 ;i<(j+1); i++) {
document.write("*");
}
document.write("<br>");
}
如果break出于双重循环,或者N重循环, 那break只结束当前他所处的循环。
continue是结束当前这一次循环,不会结束整个循环
for(var i=0; i<10; i++) {
if(i == 5) {
continue;
}
document.write(i + "<br>");
}
break是结束整个循环, continue 是结束当前一次循环
while循环, do…while循环
while(条件表达式) {
代码块;
自增表达式;
}
do {
代码块;
自增表达式;
}while(条件表达式)
var i =1;
var he = 0;
while(i<=100) {
he = he + i;
i++;
}
document.write(he);
var i =1;
var he = 0;
do{
he = i+he;
i++;
}while(i<=100);
总结: for、while、do..while都是循环, 但是for使用的最多,for能办到的事情, 其他的也都能办到,
但是while和do。。while相对语法复杂一下,所以,一般情况我们都用for