前言:
  学习一门编程语言的基本步骤
(01)了解背景知识
(02)搭建开发环境
(03)语法规范
(04)常量和变量
(05)数据类型
(06)数据类型转换
(07)运算符
(08)逻辑结构
8.逻辑结构——logic
   程序=数据+算法
   程序分为顺序执行,选择执行,循环执行
   (1)流程控制—选择执行
      1)if语句 结果为真的时候
          if(条件表达式){
          语句1;
          }
          语句2;
          注意:if后的大括号中如果只有一行语句,则可以省略大括号.

    //if语句
//如果满30就减15
var total=32;
if(total>=30){//如果total金额大于等于30
total-=15;//在原来基础上减15
}
console.log(total);// //练习:声明一个变量保存年龄,如果满18,打印成年人
var age=19;
if (age>=18)
{console.log('成年人');
console.log('可以去网吧');
} var age=19;
if (age>=18)
console.log('成年人');//只有一行语句,的时候可以省略{},也可以写一行 //练习:如果签名内容为空,设置默认签名
//声明变量保存签名内容,如果签名为空,设置默认签名‘这家伙很懒什么也没留下’,打印签名内容
var page='好热啊';
//if (page==='')//判断是否为空。
if (!page)
// !''->!false -> true
{page='这家伙很懒,什么也没留下';
}
console.log(page);//好热啊

在条件表达式中,有一些值默认代表false
          数值型的false的情况:0,NaN,
          字符串型的false的情况:'',空字符
          未定义的false的情况:undefined
          空的false的情况:null

    if (0)
{ console.log('hello');
}//不打印 if (1)
{ console.log('hello');
}//打印hello

2)if-else语句 如果前面是假就执行后面的条件表达式
        if(条件表达式){
        语句1;
        }else{
        语句2;
        }

    //if-else语句
//声明变量保存性别,0/1,如果是0打印女,否则打印男
var sex=0;
if (sex===0){
console.log('女');
}else{
console.log('男');
} //练习:声明变量分别保存用户名和密码,如果用户名是root,并且密码是123456,打印登录成功,否则打印登录失败
var uname='rojot';
var upwd='123456';
if (uname==='root' && upwd==='123456'){
console.log('登录成功');
}else{
console.log('登录失败');
}

3)if-else 嵌套,解决多项分支选择
        if (条件表达式1){
        语句1;
        }else ...if(条件表达式n){
        语句n;
        } else{
        语句n+1;//以上的条件表达式都是false,就执行该语句
        }

    //if-else 嵌套
//声明变量保存一个人的成绩,根据成绩打印对应的汉字
var score=56;
if (score>=90){
console.log('优秀');
}else if(score>=80 && score<90 ){
console.log('良好');
}else if(score>=70 && score<80 ){
console.log('中等 ');
}else if(score>=60 && score<70 ){
console.log('及格');
}else{
console.log('不及格');
}

4)switch-case   是一种特殊的多项分支语句,只有一种比较方式,就是全等于===
        switch-case ——转换器-情况
        break             ——结束打破
        switch(表达式){//通常是一个变量
        case 值1 ://如果表达式的值是 值1,
        语句1;
        break;//结束后面的语句
        ...
        default:
        语句n+1;//如果表达式的值和case中的值比较都是false,才会执行n+1
        }
        注意:表达式在和case后的值比较的时候,使用的是全等于,要求值和类型都相同。

    //switch-case语句
//根据星期的状态码,来打印对应的汉字0-6
var date=0;
switch (date)
{
case 0:
console.log('星期日');
break;
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
case 3:
console.log('星期三');
break;
case 4:
console.log('星期四');
break;
case 5:
console.log('星期五');
break;
case 6:
console.log('星期六');
break;
default:
console.log('错误的星期代码');
}

总结1:对比 if-else嵌套和switch-case的区别
                  相同点:两者都可以用于多项分支语句
                  不同点:if-else可以判断相等或是不等的情况。使用 范围更广泛;
                              switch-case只能用于全等于的比较,结构上给为清晰合理,可读性高,执行效率更高

(2)流程控制——循环执行
      循环:一遍又一遍执行相同或是相似的代码。
      循环的两个要素:
      循环条件:控制执行循环的次数,
      循环体:重复执行的相同或是相似的代码
      1)while循环
          while(循环条件){
          循环体
          }//当循环条件为true的时候,循环体运行中,循环条件是false的时候,循环结束

    //while循环
//循环产生10-20之间所有的数字,并打印出来
var num=10;
while (num<=20){//循环条件
console.log(num);
num++;//循环体
}
//练习:计算1-100之间所有偶数和
var i=1;//声明变量i
var sum=0;//声明变量sum
while (i<=100){//循环条件,如果I小于等于100
if(i%2===0){//计算为偶数的条件,
sum+=i; //sum等于sum加i
}
i++;//自增
}
console.log(sum);//

2)break打破循环
          在循环中,可以提前结束任何形式的循环
          isNaN()判断一个值是否为NaN 是—>TRUE 不是—>false

    //break打破循环
//打印数字1-10
var i=1;
while (true){//不停+1,没有结束
console.log(i);//每循环+1一次就打印一次数字
if (i===10){//当i为10的时候
break;//结束循环
}
i++;//循环+1
}//输出结果为1-10每个数字都打印一遍
// 在这里需要注意console.log(i)和 i++;的位置,位置不一样,输出的效果不一样,我们这里的需求是打印数字1-10 /*————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————*/ //下面需要用到浏览器端函数,简单解释一下
//alert() 弹出警示(消息)框
//prompt() 弹出提示(输入)框,需要使用变量来保存输入的值,默认类型是字符串类型,如果输入框中内容为空,返回空字符(''),如果点击取消返回null、 //练习:声明一个变量保存一个数字。无限循环弹出提示框,并输入数字,如果输入的数字大于保存的数字,弹出警示框提示 ‘big’,
//如果输入的数字小于保存的数字,弹出警示框提示‘small’,否则弹出警示框提示‘right’,结束循环。
var num=102;
while(true){
//弹出提示框
var str=prompt('input a number');
//如果输入大于之前的值
if (num<str){
alert("big");
//如果输入的值小于之前的数字
}else if (num>str){
alert("small");
}else{
//判断是否为数字,如果不是,提示
var str2=Number(str);
//isNaN,是否是NaN ——>true
if (isNaN(str2)){
alert('input a number');
}else{
//猜对
alert("right");
break;
}//注意这里空字符转数值为0
}
}

3)do-while循环 先执行一遍循环体,在判断循环条件,即使循环条件为false,也会在执行一遍循环体。
           do{
           循环体
           }while(循环条件);

        //do—while循环
//循环产生1-10之间所有的整数
var i=1;
do{
console.log(i);
i++;
}
while (i<=10); /*———————————————————————————————————————————————————————————————— */ //练习:声明变量保存123456,循环弹出提示框输入密码,如果输入正确结束循环。
var upwd="123456";
do{
//保存输入的密码
var str=prompt('input password');
//判断输入的密码是否正确
if (str===upwd){//如果正确
break;//结束循环
}
}
while (true);//循环条件。 //其他写法
var upwd="123456";
do{
//保存输入的密码
var str=prompt('input password');
}
while (str!==upwd);//如果输入的str保存的upwd不同,继续弹出窗口

4)for循环 表达式1:初始值,表达式2:循环条件,表达式3:增量,可以分解多种可能 多个循环条件中只有最后的一个起作用。
           for(表达式1;表达式2;表达式3){
           循环体 ;
           }

    //for循环
//计算1-20之间所有能被3整除的数字的乘积
var sum=1;//声明变量sum
for (var i=1;i<=20 ;i++ )//i初始值为1,循环条件为小于等于20,i执行自增
{
if (i%3===0){//如果i取余3等于0
sum*=i//sum等于sum乘以i
}
}
console.log(sum);//打印sum //练习:计算1-100的和
for (var i=1,sum=0;i<=100;i++ ){
sum+=i
}
console.log(sum);
//其他写法
var i=1,sum=0;
for ( ;i<=100;i++ ){//第一个表达式可以不用,但是要保留位置上的;分号,代表第一个表达式为空
sum+=i
}
console.log(sum); //练习:打印2000-2100年之间所有的闰年
//闰年:4年一闰,并且不能被100整除,或者能被400整除
for (var year=2000;year<=2100;year++){
if (year%4===0 && year%100!==0 || year%400===0){
console.log(year);
}
}

5) continue跳过特定条件继续执行循环
           跳过后边的循环体,继续执行增量。

    //continue跳过
//练习:打印1-100之间所有的整数,排除能被3整除和能被4整除的数字
for (var i=1;i<=100 ;i++ ){//i初始值为1,循环条件为小于等于100,i执行自增
if (i%3===0 || i%4===0){//如果i取余3等于0并且i取余4等于0
continue;//跳过此条件继续执行循环
}
console.log(i);//打印i
}

总结2:break和continue的区别
                      break :结束循环,后续不会再执行后续的循环
                      continue:跳过后边的循环体,继续执行增量,也就是下一次循环。

(3)循环嵌套——nest
      任何的循环之间可以相互嵌套

    //循环嵌套
//循环打印五次五颗*
for (var i=1,str='';i<=5 ;i++ ){
//每次循环拼接*
str+='*';
}
console.log(str);//打印结果 //以上代码要执行五次,把以上代码再次放到另一个循环中
//外层循环代表一共有多少行
for (var j=1; j<=5 ;j++ ){
//内层循环,控制每行有多少星星
for (var i=1,str='';i<=5 ;i++ ){
//每次循环拼接*
str+='*';
};
console.log(str);
}

04.JS逻辑结构的更多相关文章

  1. 04 js

    js 1. JavaScript概述 JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但 ...

  2. JS OOP -04 JS中的公有成员,私有成员和静态成员

    JS中的公有成员,私有成员和静态成员 a.实现类的公有成员 b.实现类的私有成员 c.实现类的静态成员 a.实现类的公有成员 之前定义的任何类型成员都属于公有成员的范畴,该类的任何实例都对外公开这些属 ...

  3. [04]JS获取文件大小方法

    </pre><pre name="code" class="html"><input id="file" ty ...

  4. 08.JS单词整理

    以下为按照文章顺序简单整理的JS单词, 注意:是JS单词注释,部分与英文不符 01.JS语法规范.变量与常量 console——控制台 log——日志 var——变量 variable变量,变化 co ...

  5. node.js初识04

    node的Get表单提交 form.html <!DOCTYPE html> <html lang="en"> <head> <meta ...

  6. js多线程?

    http://www.cnblogs.com/o--ok/archive/2012/11/04/JS.html http://blog.csdn.net/nx8823520/article/detai ...

  7. node.js第二天之模块

    一.模块的定义 1.在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. 2.狭义的说,每一个JavaScript文件都是一个 ...

  8. js获得页面get跳转的参数

    通过js获得页面跳转参数 页面通过window.location.href或通过window.parent.location.href进行页面跳转,在新的页面如何获得相应的参数呢? window.lo ...

  9. Vue.js 第1章 Vue常用指令学习

    今日目标 能够写出第一个vue应用程序 能够接受为什么需要学vue 能够使用指令 能够通过指定完成简单的业务(增加删除查询) 能够理解mvvm 为什么要学习vue 企业需要 可以提高开发效率 实现vu ...

随机推荐

  1. .net mvc Bundle 自己配置

    遇到了个坑 来和大家分享一下 1.一个空的mvc项目需要引用 System.Web.Optimization 2.然后nuget添加 microsoft ASP.NET WEB OPTIMIZATIO ...

  2. 5、python基本数据类型之数值类型

    前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍数值类型. 一.数值类型 数值类型有四种: 1)整数(int):整数 2)浮点数(float):小数 3)布尔值 ...

  3. Dynamics 365 CRM Action 和 workflow 的区别

    workflow 总是需要一个record作为起始点(create, update, delete or on-demand) 但是action 不需要. 例如我们需要action来创建一个发送ema ...

  4. robotframework,移动端(小程序)自动化,获取元素属性值的方法

    如下图,获取商品价格 属性值显示在content-desc内 传统的get text指定是无法获得到这个元素指定属性的值的 只有通过使用AppiumLibrary.get element attrib ...

  5. python读取文件使用相对路径的方法

    场景描述: python传统的读取文件的方法,通过读取文件所在目录来读取文件,这样出现的问题是,如果文件变更了存储路径,那么就会读取失败导致报错 如下方脚本 def stepb(a):#写入txt f ...

  6. jmeter使用—远程分布式

    今天要说的是在远程服务器上使用多台服务器进行noGUI分布式使用jmeter压测. 1.首先准备几台服务器,服务器上都需要安装同一个版本的jmeter. 2.在服务器上启动jmeter的方式是在jme ...

  7. Django设置session过期时间

    settings.py #session 设置 SESSION_COOKIE_AGE = 60 * 10 # 设置过期时间10分钟,默认为两周 SESSION_SAVE_EVERY_REQUEST = ...

  8. Selenium(一):元素定位

    一.Selenium 8种定位方式 baidu.html <form id="form" name="f" action="/s" c ...

  9. asp获取隐藏域的json 并解析

    方法粗糙,适用度适中. var data2 = document.getElementById("hd_data02"); var val = data2.value; var o ...

  10. c语言秋季作业3

    本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业链接 我在这个课程的目标是 运用C语言编程解决一些简单的数学问题 这个作业在那个具体方面帮助我实现目标 学习if else ...