javaScript快速入门之条件语句和循环语句

条件语句和循环语句


条件判断语句

代码块:同一个{}中的语句我们称为是一组语句,也叫代码块

  • 只具备分组的作用,没有其他的用途,在外部是完全可见的
  • 让结构更加的清晰

语法:

  • if(条件表达式){}  // 先对条件表达式进行求值判断
    
    if(true) alert('hello'); // 执行弹框 
    // if语句只能控制后面的那一条语句
    // 使用代码块,if就可以控制多条语句
    if(true){
    	alert('hello');
    	alert('world');
    }
    
    
    
    //当改语句执行时,会从上到下依次对条件表达式的值进行判断
    // 如果为true则执行该条语句
    var age = 18;
    if(age >= 18){
    	alert('成年人')}else{
    	alert('未成年人')}
    
    prompt() // 可以弹出一个提示框,用户可以进行输入,和python的input类似
    var age = prompt("请输入你的年龄");
    alert(age);
    if(age >= 18){
    	alert('成年人')}else{
    	alert('未成年人')}
    
    var age = + prompt("请输入你的年龄"); //返回值就是一个number
    
    
    

条件分支语句

  • switch语句
  • switch。。case。。。 回依次将case后的表达式的值和switch的条件表达式的值进行全等比较,如果比较为true,则从当前 case 执行代码。
  • 条件比较清楚
  • 语法
switch(条件表达式){
	case 表达式:
		break
}


var num = 10;
switch(num){
	case 1:
		console.log('hello');
	case 2:
		console.log('world');
	case 10:
		console.log("that's right");
		break; // 退出switch语句
	default:   // 相当于else
		console.log('not found')
		
}

循环语句

  • 通过循环语句可以反复执行一段代码多次

  • while循环

    先对条件表达式进行求值,再去判断

while(条件表达式){
	语句
}

var n = 0;
while(true){
	alert(n++);
	if(n == 20){
		break;
	}
}

var n = 0;
while(n < 20){
	//定义一个更新表达式
	alert('hello'+n)
	n++;
}
  • do。。。while循环
  • 循环体执行完毕以后,在对while之后的条件表达式进行判断
  • 如果为true继续执行,false则终结
  • 可以保证循环体至少执行一次,而while不能
do{
	语句
}while(条件表达式)

var n = 0;
do{
	alert(n++);
}while(n<=10);
  • for循环

  • for循环语法
    for(初始化表达式;条件表达式;更新表达式){
    	语句	
    }
    
    for(var i = 0; i < 10 ;i++){
    	document.write(i)
    }
    执行的流程:
    1.执行初始化表达式,初始化变量
    2.执行条件表达式,判断是否执行循环,为true则执行循环
    3.执行更新表达式,更新完表达式执行完毕继续重复
    
    三个部分都以在外部写
    var i = 0 ;
    for (;i<10){
    	alert(i++)
    }
    
    for (;;){
    	alert('hello')
    }  // 死循环
    
    打印水仙花数
    for(var i=100; i<1000;i++){
    	bai = parseInt(i / 100);
    	shi = parseInt(i/10%10);
    	ge = i % 10;
    	if(bai**3+shi**3+ge**3 == i){
    		document.write(i+'\t');
    	}
    }
    153 370 371 407
    
    判断输入的数字是否为质数
    var num = prompt("输入你要验证的数字:") //后面不加分号
    var flag = true;
    for(var i = 2; i<num;i++){
    	if(num % i == 0){
    		flag = false;
    	}
    }
    if(flag){
    	alert(num+"是质数")}else{
    	alert(num+"不是质数")}
    
  • 嵌套的for循环

  • 打印三角*
    
    for(var i=0;i<100;i++){
    	for(var j =0;j <=i+1;j++;){
    		document.write('* ');
    	}
    	//换行
    	document.write('<br />');
    	
    }
    
    打印倒三角*
    
    //控制*的高度
    for(var i=0;i<100;i++){
    	//控制*的宽度
    	for(var j =0;j <=100-i;j++;){
    		document.write('* ');
    	}
    	//换行
    	document.write('<br />');
    	
    }
    
    正乘法表
    for(var i=1;i<10;i++){
    	for(var j=1;j<i+1;j++){
    		document.write(j+'*'+i+'='+(i*j)+'\t');
    	}
    	document.write('<br />');
    }
    
    
    打印一个倒乘法表
    for(var i=1;i<10;i++){
    	for(var j=1;j<10-i;j++){
    		document.write(j+'*'+i+'='+(i*j)+'\t');
    	}
    	document.write('<br />');
    }
    
    写出100以内的所有质数
    
    for(var i = 2;i<100;i++){
    	var flag = true
    	for(var j = 2;j<i;j++){
    		if(i%j == 0){
    			flag = fasle;
    		}
    	}
    	if(flag){
    		document.write(i);
    	}
    }
    
    

break和continue:

  • break关键字可以用来退出switch或循环语句,不能放在if语句中使用
for(var i=0;i<5;i++){
	console.log('out'+i);
	for(var j=0;j<5;j++){
		break;
		console.log('inner'+j);  //终止内层循环
	}
}

// 可以为循环语句创建一个label,来标识当前的循环
// label:循环语句

outer:
for(var i=0;i<5;i++){
	console.log('out'+i);
	for(var j=0;j<5;j++){
		break;
		console.log('inner'+j); 
	}
} // 这个循环的名称叫outer

//这样break就可以指定停止的循环
outer:
for(var i=0;i<5;i++){
	console.log('out'+i);
	for(var j=0;j<5;j++){
		break outer; //终止外层循环
		console.log('inner'+j); 
	}
}

```javascript

- continue
- continue默认是对最近的循环起作用

for(var i = 0;i<5;i++){
if(i==2){
continue; // 跳过当次循环
}
console.log(i);
}
// 0,1,3,4,5

for(var i = 0;i<5;i++){
for(var j=0;j<5;j++){
if(j==1){
continue; // 内层循环没有1
}
console.log(j);
}
}




## 优化质数

测试程序的性能

程序执行之前,开启计时器

console.time()可以用来开启一个计时器

它需要一个字符串作为参数,这个字符串会作为计时器的一个标识

```javascript
console.time("test");

for(var i = 2;i<100;i++){
	var flag = true
	for(var j = 2;j<i;j++){
		if(i%j == 0){
			flag = fasle;
		}
	}
	if(flag){
		document.write(i);
	}
}

console.timeEnd("test"); // 用来停止一个计时器,传递停止的参数


for(var i = 2;i<100;i++){
	var flag = true
	for(var j = 2;j<i;j++){
		if(i%j == 0){
			flag = fasle;
			break;  //进入这里说明ta已经是一个偶数了,所以没必要再往下面继续去循环,可以节省大量的时间,当数据很大时
		}
	}
	if(flag){
		document.write(i);
	}
}

var res = Math.sqrt(4); // 2 对一个参数进行开放

for(var i = 2;i<100;i++){
	var flag = true
	for(var j = 2;j<=Math.sqrt(i);j++){ // 只要判断最小的偶数集就可以了
		if(i%j == 0){
			flag = fasle;
		}
	}
	if(flag){
		document.write(i);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42992704/article/details/105029967
今日推荐