3、JS之循环结构和函数

1、流程结构

上篇博客我们已经知道了,程序运行的三大结构,顺序结构,选择机构,现在我们要来学习选循环结构。

2、循环结构

字面理解,循环,就是重复的做某件事情,循环使用环保袋子,循环听一首歌,天道循环,周而复始。总而言之,言而总之,循环就是在满足某些条件下重复的执行某一个操作。

3、循环的特点:

1、循环结构:
循环起始值,包括循环条件,循环自增量(每次增加的量) ,循环操作。

2、语法:
for(循环的初始值;循环条件;循环的自增量){
循环操作;
}

3、示例。
我要对小王说我比你差一点,一直说道差10点。

	for (var i = 1;i<=10;i++){
  	  alert('我比你差'+i+'点');
		}

循环的执行流程,
1.变量开始
2.判断变量是否吻合循环条件,
3.吻合执行循环操作,不吻合跳出
4.变量自加
5.判断自加后的变量是否吻合循环条件。 持续进行,直到不吻合循环条件,跳出循环

4、小练习,用for循环做100以内(含100)偶数的和。

var sum=0;
	第一种写法:	
	for (var i=2;i<=100;i=i+2){
    	sum = sum + i;
		}
	alert(sum);
	第二种写法:
	var sum = 0;
	for (var i=0; i<=100;i++){
  	  if (100%2==0){
      		  sum = sum + i;
 	  	 }
	    }
		alert(sum);	

5、continue

continue跳出本次循环,继续下面的循环
break 跳出本次循环,结束本次循环
例如:

	for (var i=0;i<100;i++){
    		if (i==2){
      		  continue;
   		 }
   	 alert(i);
	}

此时会显示 0,1,3,4,5…99,因为跳出循环,然后继续执行
如果把continue换成break,那么只会显示0,1,因为该显示2的时候break了,跳出循环,结束操作,不再执行了。

6、练习一张纸0.001米,对折多少次能超过珠峰的高度

// 一张纸厚度0.0001米,珠峰8848米,对折多少次超过珠峰的高度
var paper =0.001;
var peak = 8848;
for (var i=1;i>0;i++){
    paper = paper*2;
	    alert('第'+i+'次paper的厚度为:'+paper)
    if (paper>peak){
   		 alert(i);       	
    		break;
    }
 }
alert(i);

7、模拟计算器:

依次输入三个弹框
第一个弹框输入数字
第二个弹框输入运算符
第三个弹框输入数字
最后输出结果 例如 输入 3 + 5 最后结果是8*/

var num1 = prompt('请输入第一个数字')-0;
var num2 = prompt('请输入+-*/运算符');
var num3 = prompt('请输入第三个数字')-0;
var sum;
switch (num2) {
    case '+':
       sum = num1 + num3;
       alert(sum);
       break;

    case '-':
        sum = num1 - num3;
        alert(sum);
        break;

    case '*':
        sum = num1 * num3;
        alert(sum);
        break;

    case '/':
        sum = num1 / num3;
        alert(sum);
        break;
        
    default:
        alert('您输入的格式有误,请重新输入');
        break;
}

8、练习游戏程序:

编写游戏程序,算平均分
编写一个游戏评分器,让用户输入十次每局的游戏得分,最后输出平均数

var score ; //每局分数
var sum = 0;//总分
var avg;//平均分
for (i=1;i<=10;i++){
    score = prompt('请输入第'+i+'局游戏得分')-0;
    sum = sum +score;
    // alert('前'+i+'局总分是'+sum+'分');
    avg=sum/i;
}
alert('平均得分是'+avg+'分');

9、找出1-1000以内所有能被5整除,或者6整除的数字,控制台输出

for (var i =1;i<=1000;i++){
    if (i%5==0 || i%6==0){
        console.log(i);
    }
}

10、引申= = 与===的区别

var a = 5;
var b = ‘5’;
alert(a==b);  
alert(a===b);  

此时一个字符串,一个数字;
a= =b 此时会返回true
a== =b 此时会返回false

因为:

= = 只要值相等,就返回true
=== 完全等于,需要值相等,还需要数据类型相等,才能返回true;

再引申:

!=,代表数值不等,返回true
!==,数值不等或者数据类型不等,返回true.

var a = 5;
var b = '6';
alert(a!==b);

此时返回true.

11、isNaN方法判断输入的是不是一个数字

isNaN 意为不是一个数字
例子:

var num = prompt('请输入一个数字')

if (!isNaN(num)){
    alert('您输入的正确,是一个数字');
} else {
    alert('您输入的错误,不是一个数字');
}

上面的例子中:!isNaN(num),因为有了!是取反的意思,所以就是,不是不是一个数字,在语言中,双重否定为肯定,那就是,是一个数字。

12、分号的重要性

for ( ; ; ){alert('我喜欢你')};
for (; ; );{alert('我也喜欢你')};

分号代表一句话的结束,就行对讲解讲话的完毕over一样。
第一句没有条件,所以是死循环,一直执行循环体内的东西
第二句在死循环前加了分号,代表一直死循环中,第二句永远也不能执行到我也喜欢你,

13、while循环

whie循环语法:

初始部分//定义变量的地方 声明变量
while(循环条件){
循环操作
迭代部分
}

例子:

var i = 0;//初始变量
while (i<10){
    alert('好好学习第'+i+'天');
    i++;//迭代 自增部分
}

我们需要了解,循环必备的四个条件:

1.初始变量(从哪里开始),
2.循环条件(满足哪些条件执行循环,那么不满足了就是结束循环)
3.循环操作(执行语句,循环要执行什么)
4.迭代,以什么样的规律进行循环,此处我们以自增为例
综上:
while循环和for循环都需要具备上述四个循环条件,只是循环需要的条件放置的位置不同。

14、do while 循环

特点:
先执行循环操作,再进行判断,至少会执行一次循环操作。
语法:

声明变量
do{
  循环操作;
          跌代;
}while(循环条件);

例子:

var i = 0;
do {
    alert('好好工作第'+i+'天');
    i++;
}while (i>10);

此时,首先会执行一次‘好好工作第0天’,执行完以后进行判断,此时的i>10不能满足,所以循环中止。

15、总结循环的优势

1、解决重复问题
2、减少代码的编写,是结构更加清晰
3、增强代码的可读性

16、函数:

1、什么是函数:
是程序的单元,完成特定任务的代码块执行语句。大白话讲,函数就是增加代码的重复使用,可以设定在哪些时候执行哪些我们需要让程序执行的代码块。
函数设定好后,在使用的时候只需要调用就可以了,就像公交车,飞机,手机等等,你用的时候只需要拿来使用就行。

2、如何声明一个函数
function 函数名(){ 函数要执行的操作};

例子:

function fn() {
    alert('你好祖国');
}

此时函数就做好了,但他不会自己弹出这个内容,当其他位置调用这个函数的时候,就会弹出里面的函数操作了,就会弹出你好祖国了

3、如何调用函数
函数名();

function fn() {
    alert('你好祖国');
}
fn();//调用了fn函数

此时上面写的fn(); 就调用了上面的fn函数,直接就可以弹出函数内需要执行的操作了。

4、参数
我们在平时使用的alert(); prompt();isNaN();parsInt()等等,就是函数,就是别人已经写好的函数,我们拿来直接调用了。
当我们aler(‘你好’),的时候,这个你好,就是我们传递的参数,传过去一个数字

参数分为两种:形参 实参

1.实参

语法:
函数名(参数){
要执行的操作。
}
举例:我们需要让设置一个fn参数,里面要有一个参数,进行自乘。

例子:

function fn(num) {
    alert(num*num);
}
fn(9);

此时就会弹出一个81.他的运行流程就是,调用函数以后,我们的给函数的参数,会进入到函数的模板里,然后进行函数指定的操作。我们调用这个fn参数,给里面传入的9,在fn函数中,num就变成了9,所以会出现9*9,弹出81.

我们可以把函数理解为一个模具(比如这个磨具是个小狗的形装),传入的值,就是倒进去的材料,倒进入铜就出铜材质狗,倒进去铁就出来一个铁材质的狗。

一个函数里面可以传递多个参数,没有限制,多个参数中间用逗号隔开。
举例:我们需要让设置两个fn参数,执行的操作是让两个函数相乘。

例子:

function fn(num1,num2) {
    alert(num1*num2);
}
fn(3,8);

此时3就传给了num1,8就传给了num2。弹出的结果就是24.

2.return
return 就是函数的返回值,函数在执行完成后,会有一个执行的结果,执行的结果,就是return的内容
return的功能1、返回结果 2、直接结束,代码只要碰到return就执行结束。

举例:
我们设置一个函数,给函数一个参数num,判断num是否大于10,如果大于10,就返回‘大于10’,否则就返回不大于‘10’。

我们可以在函数中写判断语句,然后给一个return的值,在调用函数的时候,只需要给函数传一个参数就可以了,就会出现这个return的结果。把结果alert或者consle.log输出即可。

例子:

function fn(num) {
    if (num>10){
        return '大于10';
    }else{
        return '不大于10';
    }
}
console.log(fn(5));
alert(fn(5));

此时 控制台和弹框,就会弹出不大于10。因为弹出的就是return的结果。

例题: 用函数做一个简单的计算器

思路:
先给函数里面设置三个参数:num1 ,fuhao(符号),num2,
然后在函数里面用switch(fuhao),
case’+’: num1+num2,依次类推
然后在下面调用函数,传三个值即可。

代码:

function fn(num1,fuhao,num2) {
    switch (fuhao) {
        case '+':
            return (num1 + num2);

        case '-':
            return num1 - num2;

        case '*':
            return num1*num2;

        case '/':
            return num1/num2;
    }
}

//调用函数
console.log(fn(8,'*',5));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值