代码块
一个{}整体,称为一个代码块。
代码块的后边不用再写;
js中的代码块只具有分组的作用,没有其他的用途。
代码块内部的内容,在外部是完全可见的
流程控制语句:
1:条件判断语句
if语句:
if(条件表达式)
语句
先对条件表达式进行求值判断,如果表达式的值为true,则执行if后的语句
如果希望可以控制多条语句,放入{}形成一个代码块。不写只能控制一条语句。
但是还是尽量放入{}中,即使只有 一条语句。
prompt()函数,弹出一个输入框,可以定义一个变量接收。
if else 语句可以内部嵌套
<script>
var grade=prompt("请输入你的成绩");
if(grade<=100&&grade>=0){
if (grade==100){
alert("100,真棒")
}else if (grade>=80){
alert("80-100")
}else if (grade>=60){
alert("60-80")
}
else {
alert("加油")
}
}else{
alert("输入格式有误")
}
</script>
prompt()函数返回的是 String
条件分支语句:
switch语句:
switch(条件表达式){
case 表达式:
语句...;break;
case 表达式:
语句...;break ;
...
default:
语句;break;
}
会依次将case语句的值和switch语句的值进行全等比较,全等对执行对应case的语句。
注意每个case语句后要加break,否则会依次执行剩下的所有代码 。
使用switch和if可以互相代替,使用时根据自己的习惯进行选择,
例子:
<script>
var num=90;
switch(num/10){
case 10:
case 9:
case 8:
case 7:
case 6:
console.log("合格");
break;
default:
console.log("不合格");
}
</script>
改进代码结果:
switch (true) {
case num>=60:
console.log("合格");
break;
default:
console.log("不合格");
break;
}
循环语句:
while(条件表达式){
语句..
}
先对表达式进行求值判断,条件满足,值为true,执行循环语句。不满足,退出循环。
do{
语句..
}while(条件表达式)
do-while先执行循环体,在判断条件。
while先判断条件,在执行循环体。两个功能类似。
区别:do-while保证循环体至少执行一次,而while不能
遇到死循环,遇事先冷静。
for循环()中什么都不写,只写两个;将会是一个死循环。
编程状态:
大的问题拆分成小问题,再逐一侦破;
获取一个数据的不同位数的数字:
获取百位:parseInt(i/100)
获取十位:parseInt((i%100)/10)
获取个位:parseInt(i%10)
判断是否为质数:
var num=5;
var flag=true;
for (var i=2;i<num;i++){
if (num%i==0){
flag=false;
break;
}
}
console.log(flag);
for循环的嵌套功能:
<script>
for(var i=0;i<5;i++){
for(var j=0;j<i;j++){
document.write("*")
}
document.write("<br/>")
}
</script>
外部的for循环实现了限制高度,内部的for循环实现了限制宽度
for(var i=0;i<6;i++){
for(var j=0;j<6-i;j++){
document.write("*")
}
document.write("<br/>")
}
输出一个倒三角
打印一个乘法表
for(var i=1;i<10; i++){
for (var j=1;j<=i;j++){
document.write(j+'*'+i+'='+i*j+' ')
}
document.write("<br/>")
}
表示空格
输出1-100之间的质数:
for (var i=2;i<101;i++){
var flag=true;
for(var j=2;j<i;j++){
if (i%j==0){
flag=false;
break;
}
}
if (flag){
console.log(i);
}
}
优化算法:
只需要检查到平方根处,优化算法
for (var i=2;i<101;i++){
var flag=true;
for(var j=2;j<=Math.sqrt(i);j++){
if (i%j==0){
flag=false;
break;
}
}
if (flag){
console.log(i);
}
}