程序的三大结构:

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

程序的单分支结构-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. OKVIS框架之前端

    1. 数据流入 在okvis_app_sychronous.cpp内,把IMU和图像数据加入到各自的队列里.由ThreadedKFVio负责队列的各种操作.作者对队列加了特殊功能,保证队列是线程安全的 ...

  2. redux 介绍及配合 react开发

    前言 本文是 Redux 及 Redux 配合 React 开发的教程,主要翻译自 Leveling Up with React: Redux,并参考了 Redux 的文档及一些博文,相对译文原文内容 ...

  3. 2019-10-31-WPF-等距布局

    title author date CreateTime categories WPF 等距布局 lindexi 2019-10-31 9:0:2 +0800 2018-2-21 17:3:4 +08 ...

  4. 四、附加到进程调试(.NET Framework)

    附加到进程调试: 1.需要在IIS配置环境并可运行即通过浏览器可打开. 2.找到项目w3wp.exe进程并附加到进程调试,点击项目添加断点,直接访问浏览器即可. 优点:w3wp.exe是已经运行的,调 ...

  5. Java集合和数组的比较(为什么引入集合)

    数组不是面向对象的,存在明显的缺陷,集合完全弥补了数组的一些缺点,比数组更灵活更实用,可大大提高软件的开发效率而且不同的集合框架类可适用于不同场合.具体如下: 1)数组的效率高于集合类. 2)数组能存 ...

  6. 一个故事讲懂vue父子组件传值

    作者:李佳明同学链接:https://www.jianshu.com/p/2272b6ca0f0c 一个故事讲懂vue父子组件传值 讲故事前先讲代码 父组件向子组件传值 父组件数据传递给子组件可以通过 ...

  7. 21.与重入锁相关联的Condition

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /** * ...

  8. java--substring内存溢出问题

    public class SubStringDemo { //substring() /** * jdk6 当调用 substring() 方法时,创建了一个新的String对象,但是string的v ...

  9. AI加持的阿里云飞天大数据平台技术揭秘

    摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...

  10. 4K超清,2500万人在线,猫晚直播技术全解读

    摘要: 作为双11的必备节目,今年的猫晚通过优酷.浙江卫视.东方卫视进行了全程网络直播和电视直播,吸引了超过全球超过2.4亿人收看.猫晚期间,优酷基于阿里云最新的广播级高可靠直播方案,为近2500万的 ...