程序的三大结构:

顺序结构,选择结构,循环结构

程序的单分支结构-if语句:

 
    当条件判断为真true时,执行花括号内的语句,如果条件为假false,跳过花括号内的语句
 
    if(条件){
        执行语句
    }
 
    
    if(条件){
        执行语句1,为真时执行
    }else{
        执行语句2,为假时执行
    }
 
    当条件判断为真true时,执行语句1,如果条件为假false,执行语句2。
 
 
    if()括号里面的东西我们通常也叫它逻辑点
 
    为真true,为假false,这是布尔值,需要通过逻辑运算符得到。
 
 
    但是:
    if(1){
        alert("会弹出来么?");
    }
    1是数值型,不是布尔值,更不是true?为什么会执行花括号内的语句了呢?
 
    在一些特定的情况下,计算机会进行一些隐式转换,他和强制类型转换不一样,他不需要你做什么,会自动对数据类型进行转换
    在运算中,if(小括号)中的语句会发生隐式类型转换。
 
    1.运算中的隐式类型转换:
    var a = "1",b = 2;
    a + b = ???
    
    +号有两种含义:数学中的+号运算符;字符串的拼接。优先字符串拼接,所以在检测到+号左右两边存在字符串的时候,会自动将另一边不是字符串的数据,转成字符串,再进行操作
 
    a - b = ???
    
    除了+号有两层意义为外,-*/%号只有数学意义,所以当进行-*/%的时候,默认将运算符两边的数据类型隐式转换成数字类型再进行运算
    
    2.if(小括号)内的隐式类型转换。
    if()中只需要布尔值,那么在if判断中,会把括号内所有的数据类型,都隐式转换成布尔型。
    在if()中,非零数字都会转成true,非空字符串都会转成true;这是两条基础规则
 
例:判断奇偶
var a = 3;
if (a % 2 ==0) {
alert("偶数");
}else {
alert("奇数");
}

程序的多分支switch语句/break关键字

    switch()多分支语句
 
    注意:在switch()内,不会发生隐式数据类型转换
 
    switch(){
        case 0:alert("零");
        break;
        case 1:alert("一");
        case 2:alert("二");
        default:alert("不识别的数字");
    }
 
    switch()内,不会做判断,在case身上判断这个值是否符合。
 
    switch()内,不能做判断,同时在case后也不能做条件判断,
 
    注意:如果判定的是范围,不要使用switch语句;判定具体数据的时候,才使用switch
 
    案例:判断星期几;判断成绩;
 
    注意switch的应用场景:有多个 确定值  需要判断的时候
 
    注意case语句的穿透,要加break语句:如果程序没有break语句,那么解析器会继续向下解析
 
    注意default相当于if语句中的else,当以上条件都不满足的时候,执行default
 
 
例:判断成绩等级
    var grade = 65;
var score = parseInt(grade/10);
switch(score) {
case (10):alert("学霸");
break;
case (9):alert("学霸");
break;
case (8):alert("优秀");
break;
case (7):alert("良好");
break;
case (6):alert("中等");
break;
default:alert("不及格");
break;
}

  

三目运算符:

       var a = 6;
if(a<10){
a = "0"+a;
}else{
a = a;
} //上面的代码,等价于下面的代码
var a = 6;
a = a<10 ? "0"+a : a;

  

循环:

 循环的意义:
    计算机是个傻子,没有七情六欲,不会有人类的感性和思考。当你问他爱吃啥,他不知道,当问他喜欢什么颜色,也不知道。那我们要计算机干啥呢?
    从远古时期讲,所谓计算机并没有现在这个牛的功能,游戏电影,都是不可能的。只能干一件事:计算。那么什么是计算呢,为什么不自己计算呢?
    所谓计算,就是数据的累加,比如1jia到100,这些累加都是重复性的工作,当人处理这些重复性的工作时,速度有限,但是计算机处理起来奇快无比,这就是计算机的价值所在。
    发展到今天也是一样,当我们需要计算机的时候,大多数让他干的都是重复性的工作,这些重复性的工作有着极其相似的代码
 

while循环和do-while循环的使用

    while(条件){
        执行语句
    }
 
    当条件为true时,会一直重复执行花括号内的执行语句。注意:千万不要造成死循环

    var i = 0;        //计数器
while(i<10){ //停止的条件
document.write("hello world”);
i++; //改变计数器
}
    注意:为避免死循环,一定要在循环体内改变条件中使用的变量的值
 
 
    do-while
 
    do{
        当条件为真,执行这里的语句
    }while(条件){
        当条件为假,执行这里的语句
    }
 
    当条件为真时,执行do的语句,当条件为假时,执行while的语句

    do{
console.log("do的执行语句”);
i++;
}while(i<10){
console.log("while的执行语句");
}
    注意do-while的改变计数器需要写在do语句中,否则会造成死循环。
 
while和do-while的区别?
    do-while无论结果为真还是为假,都会执行一次
    
例:计算1-100之间的和
        //方法一
var sum = 0;
var i = 1;
do {
sum += i;
i++;
}while (i <= 100){
console.log(sum);
} //方法二
var sum = 0;
var i = 1;
while(i <= 100) {
sum += i;
i++;
}
console.log(sum);
    

continue关键字 和 break关键字的使用:

    continue和break都是用来控制循环结构的,主要是用来停止循环。
    
    continue表示终止本次循环,还执行后面的循环。也可以理解成跳过本次循环中剩下的语句,执行下一次循环。
 
    break表示完全结束一个循环,跳出循环体执行循环后面的语句。
 
 

1.for循环的使用

    for(语句1;语句2;语句3){
        需要执行的代码块
    }
 
    语句1:在循环体开始前执行----计数器
    语句2:循环的条件--------停止的条件
    语句3:在循环体被执行后执行---改变计数器

for(var i = 0; i < 10; i++){
console.log(1);
}
    注意在for循环中语句之间用“;”隔开。
 
    小技巧:在知道执行次数时用for,在无法判断循环次数时用while
    

2.for循环的嵌套

    for循环嵌套时,注意各个循环的计数器变量名不能重复,否则会变成死循环
    
    如何使用:需要打印的内容多行多列的时候,需要做多重运算的时候
 
    例:打印九九乘法表
        for (var i = 1;i <= 9;i++) {
for (var j = 1;j <= i;j++) {
document.write(j + "*" + i + "=" + i*j + "&nbsp;&nbsp;");
}
document.write("<br>");
}

3.死循环

    无法靠自身控制结束的循环,称为死循环
    
    但是可以利用死循环的原理,解决一些问题:
    案例:篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度是0.1米。
             不知道要循环几次的问题,利用死循环的原理,每次判断一个条件,直到满足条件,利用break跳出循环
 
        var h = 5;
var i = 0;
while(true) {
h = h * 0.3;
i++;
if (h < 0.1) {
console.log(i);
break;
}
}

Javascript基础二(程序的三大结构)的更多相关文章

  1. 2、JavaScript 基础二 (从零学习JavaScript)

     11.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. 1>Number强制转换 参数为原始类型值的转换规 ...

  2. java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  3. 刘强1109 JavaScript基础二(分支与循环结构)

    [if-else结构] 1.结构的写法: if(判断条件){ 条件为true时,执行if{} } else{ 条件为false时,执行else{} } 2.注意事项: ① else{}语句块,可以根据 ...

  4. JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象

    创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...

  5. python基础之数据的三大结构

    python的三大数据结构 1.顺序 2.分支 3.循环 # if语句联系# 如果age小于18岁,则打印信息“未成年”age = 17if age <= 18: print("未成年 ...

  6. javascript基础二数据类型

    1.数据类型 javascript中的基本数据类型有4中,undefined,number,string,boolean 1.1 typeof关键字 typeof关键字可以获取一个变量的的类型.先举个 ...

  7. JavaScript 基础二

    JavaScript 事件处理程序就是一组语句,在事件(如点击鼠标或移动鼠标等)发生时执行 ●当事件之间互相影响时,需要有个先后顺序,这时我们声明一个Bool值来做约束 浏览对象: window 对象 ...

  8. JavaScript 基础(二)数组

    字符串, JavaScript 字符串就是用'' 和""括起来的字符表示. 字符字面量, \n 换行, \t 制表, \b 退格, \r 回车, \f 进纸, \\ 斜杠,\' 单 ...

  9. JavaScript基础二

    1.7 常用内置对象 所谓内置对象就是ECMAScript提供出来的一些对象,我们知道对象都是有相应的属性和方法 1.7.1 数组Array 1.数组的创建方式 字面量方式创建(推荐大家使用这种方式, ...

随机推荐

  1. A - Max Sum Plus Plus (好题&&dp)

    A - Max Sum Plus Plus  I think you have got an AC in Ignatius.L's "Max Sum" problem. To be ...

  2. netbean out of memory java heap space

    When run test file in netbean. all dependency and resource are right, but it raise up java.lang.OutO ...

  3. dubbo服务调试管理实用命令

    公司如果分项目组开发的,各个项目组调用各项目组的接口,有时候需要在联调环境调试对方的接口,可以直接telnet到dubbo的服务通过命令查看已经布的接口和方法,并能直接invoke具体的方法,我们可以 ...

  4. Nginx动静分离基本概述

    Nginx动静分离基本概述 动静分离,通过中间将动静分离和静态请求进行分离: 通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同时能减少请求的延时. 通过中间件将动态请求和静态请求分离, ...

  5. Linux用户的基本操作3 (组的基本管理,用户提权)

    目录 组的基本原理 用户身份切换 5.用户身份提权 组的基本原理 组账户信息保存在/etc/group 和/etc/gshadow 两个文件中. /etc/group组账户信息 [root@zls ~ ...

  6. SVN连接不上仓库,问题之一

    如果之前用过SVN,在新的地址上用,发现一直连不上,报错.有可能是因为默认使用了之前的地址,所以没弹出输账号和密码的弹框. 解决方法就是:把之前的链接地址全部清除掉. 右键找到SVN里面的  Sett ...

  7. 浅谈maven自动化构建工具

    转载https://blog.csdn.net/zxm1306192988/article/details/76209062 Maven是什么[what] 1.Maven 是 Apache 软件基金会 ...

  8. c++后台开发面试常见知识点总结(五)场景设计

    搜索引擎的实现,会用到哪些重要的数据结构 设计实现一个HTTP代理服务器 / web服务器 / FTP服务器/ 设计实现cache缓存web服务器的网页访问记录 把一个文件快速下发到100w个服务器 ...

  9. localstorage sessionstorage和cookie的区别

    基本概念 cookie:是网景公司的前雇员在1993年发明.它的主要用于保存登陆信息,比如登陆某个网站市场可以看到'记住密码’,这就是通过在cookie中存入一段辨别用户身份的数据来实现的. sess ...

  10. 【leetcode】1005. Maximize Sum Of Array After K Negations

    题目如下: Given an array A of integers, we must modify the array in the following way: we choose an i an ...