• js控制语句


    1 条件判断语句

    条件语句用于基于不同的条件来执行不同的动作。

    1.1if 语句 

    if (condition)
    {
        当条件为 true 时执行的代码
    }

    1.2if...else 语句 

    if (condition)
    {
        当条件为 true 时执行的代码
    }
    else
    {
        当条件不为 true 时执行的代码
    }

    1.3if...else if...else 语句

    if (condition1)
    {
        当条件 1 true 时执行的代码
    }
    else if (condition2)
    {
        当条件 2 true 时执行的代码
    }
    else
    {
      当条件 1 和 条件 2 都不为 true 时执行的代码
    }

    练习1:输入一个数,判断是不是0100之间

    代码:

    var num=parseInt(prompt("输入一个0到100之间的数"));
    if(num>=0 && num<=100){
        alert(num+" 是0到100之间的数");
    }

    练习2:猜数游戏(用户输入一个数,和随机数进行比较)

    代码:

    //随机数和用户输入的数比较
        var x=parseInt(Math.random()*100);
        console.log(x);
        var y=parseInt(prompt("输入0到100之间一个数"));
        if(x>y){
            alert("你的数较小");
        } else if(x<y){
            alert("你的数较大");
        } else{
            alert("猜对了");
        }    
    

    结果:

     

    练习3,体重测量

    代码:

    var sex=prompt("请输入您的性别");
    
    if(sex=='男'){
    	var height1=+prompt("请输入您的身高,单位cm");
    	var weight1=+prompt("请输入您的体重,单位kg");
    	var num1=weight1-height1+100;	
    	if(num1>3){
    		alert("偏胖");
    	} else if(num1<-3){
    		alert("偏瘦");
    	} else{
    		alert("标准");
    	}	
    }
    
    if(sex=='女'){
    	var height2=+prompt("请输入您的三位数身高,单位cm");
    	var weight2=+prompt("请输入您的体重,单位kg");
    	var num2=weight2-height2+110;	
    	if(num2>3){
    		alert("偏胖");
    	} else if(num2<-3){
    		alert("偏瘦");
    	} else{
    		alert("标准");
    	}	
    }
    

    结果:

    2 switch 匹配语句

    switch 语句用于基于不同的条件来执行不同的动作。

    2.1语法

    switch(n) {

    case 1: 执行代码块 1

    break;

    case 2: 执行代码块 2

    break;

    default:

    case 1 case 2 不同时执行的代码

     } 

    工作原理:

    首先设置表达式 n(通常是一个变量)。

    随后表达式的值会与结构中的每个 case 的值做比较。

    如果存在匹配,则与该 case 关联的代码块会被执行。

    使用 break 来阻止代码自动地向下一个 case 运行。

    2.2 case的穿透

    解释:首先找case,满足条件后,执行相应的代码,执行完找break

    如果没有break,接着向下执行,又找到一个case,会执行这个case的代码块,然后继续找break,直到代码块结束。

    如果default在最上方,但是没加break,就会往下执行。 

    示例:

    代码:

            var str='星期六';
    	switch(str){
    		default:
    		alert('周末');	
    		break; //试试把这个break去掉会怎么样
    		
    		case '星期一':		
    		case '星期二':
    		case '星期三':		
    		case '星期四':
    		case '星期五':
    		alert('工作日');
    		break;	
    	}
    	alert('结束');    
    

    3 for循环

    3.1语法

    for(初始化 ; 条件判断 ; 状态改变){

    执行的代码

    }

    3.2执行原理(分别用数字代表每一部分)

    0:初始化

    1:条件判断

    2:状态改变

    3:执行的代码 

    执行步骤为:

    0-1(满足条件)-3-2-1-3-2-1

       1(不满足,直接跳出) 

    如果条件一直满足,会一直执行,进入死循环

    有时候,会写一个死循环,然后在代码块中进行中止,可以这样写:

    for(;;){

    ...

    }

    练习:

    1、求奇数和,偶数和

    代码: 

                    var n=+prompt("请输入一个正整数");				
    		var sum1=0; //用来存奇数和
    		var sum2=0; //用来存偶数和
    		
    		for(var i=1; i<=n; i++){
    			if(i%2!=0) //判断是奇数
    			sum1=sum1+i;			
    			
    			if(i%2==0) //判断是偶数
    			sum2=sum2+i;
    		}
    		
    		alert('1到'+n+'的奇数和为:'+sum1);
    		alert('1到'+n+'的偶数和为:'+sum2);            
    

     结果:

    2、水仙花数有哪些(三位数)

    代码: 

    for(var i=100; i<1000; i++){ //确保是一个三位数
    				
        var a=parseInt(i%10);     //取出个位数
        var b=parseInt(i/10)%10;  //取出十位数
        var c=parseInt(i/100);    //取出百位数
    
        if(a*a*a+b*b*b+c*c*c==i){ //如果各位的立方和等于本身,就是水仙花数
            console.log(i);
        }
    }

     结果:

    3、循环猜数

    代码: 

    var x=parseInt(Math.random()*100);
    			
    for(;;){	
        var y=+(prompt("请猜数!"));			
    				
        if(y>x){
            alert("大了");
        } else if(y<x){
            alert("小了");
        } else{
            alert("猜对了");
            break;
        }	
    }
    

    4、猜拳游戏 

    代码: 

    var rad=parseInt(Math.random()*3); //随机产生0,1,2
    var num=+prompt('请出拳:0代表剪刀;1代表石头;2代表布');
    
    switch(rad){
    	case(0):{
    		switch(num){
    			case(0):alert('平手');break;
    			case(1):alert('你赢了');break;
    			case(2):alert('你输了');break;
    			default:alert('出拳错误');break;
    		}
    	}
    	break;
    	case(1):{
    		switch(num){
    			case(0):alert('你输了');break;
    			case(1):alert('平手');break;
    			case(2):alert('你赢了');break;
    			default:alert('出拳错误');break;
    		}		
    	}
    	break;
    	case(2):{
    		switch(num){
    			case(0):alert('你赢了');break;
    			case(1):alert('你输了');break;
    			case(2):alert('平手');break;
    			default:alert('出拳错误');break;
    		}		
    	}
    	break;
    }	
    

     结果:

    4 while循环

    while (条件)
    {
        需要执行的代码
    }

    常见写法:

    var i=0;

    while(i<10){

    语句;...

    i++;

    }

    whild(true){

    if(){

    break;

    }

    }

    forwhile的应用场景不一样:

    for用在循环次数确定的时候

    while用在循环次数不确定的时候

    5 do/while 循环

      do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。  

    do
    {
        需要执行的代码
    }
    while (条件); 

    两个关键字 

    break 语句用于跳出循环,也就是中止循环

    continue 用于跳过循环中的一个迭代,即跳过本次循环,

    7 循环嵌套 

    示例:

    1、公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性

    代码: 

    var count=0;  //计数
    for(var cock=1; cock<100/2; cock++){  //如果全部买公鸡
    	for(var hen=1; hen<100/1; hen++){   //如果全部买母鸡
    		for(var chick=1; chick<100/0.5; chick++){  //如果全部买小鸡
    			if(cock*2+hen*1+chick*0.5==100 && cock+hen+chick==100){  //共100文线,100只鸡
    				count++;
    				console.log('公鸡买'+cock+'只,母鸡买'+hen+'只,小鸡买'+chick+'只');
    			}
    		}
    	}
    }
    console.log('共有'+count+'种方案');
    

     结果:

    2、有一张0.0001米的纸,对折多少次可以达到珠穆朗玛峰的高度8848 

    代码: 

    var paper=0.0001; //一张纸的厚度
    var height=8848;  //珠穆朗玛峰的高度
    var count=0;	  //折纸次数
    
    while(true){
    	paper = paper*2; //每次对折,就是乘以2
    	count++;
    	if(paper>=height){ //超过高度才跳出循环
    		break;
    	}
    }
    
    console.log('对折 '+count+' 次');
    

     结果:

    3、输出乘法口诀表 

    代码: 

    for(i=1; i<=9; i++){
      for(j=1; j<=i; j++){
        document.write(j+'*'+i+'='+i*j+'&nbsp;&nbsp;');
      }
      document.write('<br>');
    }

     结果:

     

    4100内与7相关的数  

    代码: 

    for(var i=1; i<100; i++){
    	var a=parseInt(i%10);     //取出个位数
    	var b=parseInt(i/10)%10;  //取出十位数
    	var c=parseInt(i/100);    //取出百位数
    	
    	if(a==7||b==7||c==7||i%7==0){  //有7或能被7整除
    		console.log(i);
    	}	
    }
    

     结果:

     

    5 打印星星*

    1)

      

    var n=5;
    
    for(var i=0; i<n; i++){
    	for(var j=0; j<2*i+1; j++){
    		document.write('*');	
    	}
    	document.write('<br>');
    }
    

    2)

    var n=5;
    
    for(var i=0; i<n; i++){
    	for(var j=0; j<n-i; j++){
    		document.write('*');	
    	}
    	document.write('<br>');
    }
    

    3)

    var n=5;
    
    for(var i=0; i<n; i++){
    	for(var j=0; j<n-i-1; j++){
    		document.write('<i style="visibility:hidden;">-</i>');	
    	}
    	for(var q=0; q<2*i+1; q++){
    		document.write('*');	
    	}	
    	document.write('<br>');
    }
    
    for(var i=n-1; i>0; i--){
    	for(var j=0; j<n-i; j++){
    		document.write('<i style="visibility:hidden;">-</i>');	
    	}
    	for(var q=0; q<i*2-1; q++){
    		document.write('*');	
    	}		
    	document.write('<br>');
    }
  • 相关阅读:
    如何成为一名专家级的开发人员
    ZapThink探讨未来十年中企业IT的若干趋势
    Adobe CTO:Android将超预期获50%份额
    我的美国之行
    用上Vista了!
    用pylint来检查python程序的潜在错误
    delegate in c++ (new version)
    The GNU Text Utilities
    python程序转为exe文件
    c++头文件,cpp文件,makefile,unit test自动生成器
  • 原文地址:https://www.cnblogs.com/hzhjxx/p/9656142.html
Copyright © 2020-2023  润新知