表达式

一个表达式可以产生一个值,有可能是运算,函数调用,

有可能是字面量,表达式可以放在任何需要值的地方。

语句

语句可以理解为一个行为,循环语句和判断语句就是典型的语句。

一个程序有很多个语句组成,一般情况下是分割成一个一个语句。

流程控制  由三种基本结构组成

顺序结构

从上到下执行的代码就是顺序结构,

程序默认就是由上到下顺序执行的。

分支结构

根据不同情况,执行对应代码。

例如:老师留了作业,做完就可以回家,没有做完就继续做。

循环结构

重复做一件事。

例如:在操场跑10圈,一圈一圈重复的来做,直到跑完10圈为止,

有一个条件,每跑完一圈都要想一下自己跑够10圈了没有。

分支结构

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

//
if (/*条件表达式*/) {
// 执行语句
} //
if (/*条件表达式*/) {
// 执行语句
} else {
// 否则执行语句
} //
if (/*条件表达式1*/) {
// 成立执行语句
} else if (/*条件表达式2*/) {
// 成立执行语句
} else if (/*条件表达式3*/) {
// 成立执行语句
} else {
// 否则执行语句
}

小案例1

// 求两个数的最大数

var n1 = ;
var n2 = ;
// 条件表达式
if (n1 > n2) {
// 执行语句
console.log('n1:' + n1);
} else {
// 否执行语句
console.log('n2:' + n2);
}

小案例2

// 判断一个数是偶数还是奇数

var n1 = ;
// 取余%2等于0,就是偶数
if (n1 % === ) {
console.log('是偶数');
} else {
// 否则执行语句
console.log('是奇数');
}

案例3

// 定义一个分数
var score = ;
// 条件1: 大于等90与小于等于100
if (score >= && score <= ) {
console.log('A');
// 条件2:大于等于80与小于90
} else if (score >= && score < ) {
console.log('B');
// 条件3:大于等于70与小于80
} else if (score >= && score < ) {
console.log('C');
// 条件4:大于等于60与小于70
} else if (score >= && score < ) {
console.log('D');
// 否则执行语句
} else {
console.log('E');
} ////////////以上的简写 var score = ;
if (score >= ) {
console.log('A');
} else if (score >= ) {
console.log('B');
} else if (score >= ) {
console.log('C');
} else if (score >= ) {
console.log('D');
} else {
console.log('E');
}

三元运算  表达式1?表达式2:表达式3

语法结构:  表达式1 ? 表达式2 : 表达式3

解释:当表达式1条件,成立执行表达式2,不成立执行表达式3

是对if...else语句的一种简化写法。

两个小案例认识三元运算:

// 判断是否满18岁
var age = ;
console.log(age >= ? '已成年' : '未成年'); // 已成年 // 两个数中找最大值
var n1 = ;
var n2 = ;
var max = n1 > n2 ? n1 : n2;
console.log(max);

switch语句  switch{case常量1: 语句 break;default: 语句 break;}

注意点1:  每个case块的break可以省略,代码会继续执行下一个case。

注意点2:  switch语句在比较值时使用的是全等操作符(===),

因此不会发生类型转换(例如:字符串'10'不等于数值10)。

语法结构:

// 语法结构

switch (expression) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
........
case 常量n:
语句;
break;
default:
语句;
break;
}

小案例认识switch:

// 输出星期几

var day = ;
switch (day) {
case :
console.log('星期一');
break;
case :
console.log('星期二');
break;
case :
console.log('星期三');
break;
case :
console.log('星期四');
break;
case :
console.log('星期五');
break;
case :
console.log('星期六');
break;
case :
console.log('星期日');
break;
default:
console.log('不在星期范围内');
break;
}

案例2

// 把百分制转换为ABCDE

var score = ;
// 两位数转换成一位数
score = parseInt(score / );
switch (score) {
case :
case :
console.log('A');
break;
case :
console.log('B');
break;
case :
console.log('C');
break;
case :
console.log('D');
break;
default:
console.log('E');
break;
}

最后的default类似于if语句最后的else,当以上条件都不成立才执行

循环解构

while循环

while (表达式) {

// 循环体

}

// 打印1到100之间的数
var number = ; while (number <= ) { console.log(number); // 每执行循环体一次,number自身就+1
number++;
}

当表达式的条件成立则执行循环体。

do...while循环

do {

// 循环体

} while (表达式)

// 先执行一次循环体再判断条件
var number = ;
do {
// 循环体
console.log(number);
number++;
} while (number > ) // 条件不成立就停止执行循环体

先执行一次循环体,再判断表达式,如果表达式条件成立则继续执行循环体。

for 循环

for (初始化表达式; 比较表达式; 自增表达式) {

// 循环体

}

// 打印1到10之间的数字

for (var i = ; i <= ; i++) {
// 循环体
console.log(i);
}

执行顺序:初始化表达式>>>比较表达式>>>循环体>>>自增表达式

初始化表达式只执行一次!

练习例子

在控制台输出正方形:

// 打印一个10*10的正方形

var str = '';
// 外层循环控制行数
for (var i = ; i < ; i++) {
// 内层循环控制每行中字符的个数
for (var j = ; j < ; j++) {
// 拼接正方形
str = str + '* ';
// 以上的简写str += '* ';
}
// 控制换行
str += '\n';
}
// 打印
console.log(str);

打印九九乘法表:

// 拼接完的字符串
var str = '';
// 外层循环控制行数
for (var i = ; i <= ; i++) {
// 内层循环控制每行有几组
for (var j = i; j <= ; j++) {
// 拼接
str += i + '*' + j + '=' + i * j + '\t';
}
// 换行
str += '\n';
}
console.log(str);

打印直角三角形:

var str = '';
for (var i = ; i < ; i++) {
// 内层循环与外层循环建立联系
for(var j = i; j < ; j++) {
str += '* ';
}
// 换行
str += '\n';
}
console.log(str);

求1~100之间所有数的乘积:

// 接收这个乘积
var num = ;
for (var i = ; i <= ; i++) {
num *= i;
}
console.log(num);

break和continue

break:终止循环

continue:跳出当次循环,继续下一次循环

break例子:求整数50到200的第一个能被7整除的数

for (var i = ; i <= ; i++) {
if (i % === ) {
console.log(i); // 56
// 终止循环
break;
}
}

continue例子:求整数1到100的累加值,但要跳过所有个数为3的数

// 总数
var sum = ;
for (var i = ; i <= ; i++) {
// 判断是否是个数为3的数
if (i % === ) {
// 跳出当次循环
continue;
} else {
// 累加
sum += i;
}
}
console.log(sum); //

job

有本金10000,年利率是千分之一,计算5年后获得的本金是多少

// 本金
var money = ;
// 利率
var rate = 0.003;
// 累加5次
for (var i = ; i <= ; i++) {
money += money * rate;
}
console.log(money); // 10150.90270405243

兔子规律:1,1,2,3,5,8,13,21..十个月后有多少只

// n1和n2是两个月的兔子的数量
var n1 = ;
var n2 = ;
// n3变量的值是n1+n2的结果
var n3;
// 由于两个月数量已知,所以我们从第三个月开始算起
for (var i = ; i <= ; i++) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
console.log(n3);

ECMAScript1.2 表达式|语句|break|continue的更多相关文章

  1. js中退出语句break,continue和return 比较

    js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...

  2. js中退出语句break,continue和return 比较(转)

    原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...

  3. js中退出语句break,continue和return 比较 (转载)

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...

  4. js中退出语句break,continue和return 比较 (转)

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一 ...

  5. javascript中退出语句break,continue和return 比较

    在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止. 首先:break和continue两个 ...

  6. 跳出语句 break continue

    break 使用场景:终止switch或者循环 在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的 public static void main(String[] args) ...

  7. 跳转语句—break,continue,goto

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  8. js的break语句,continue语句,return语句

    js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...

  9. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

随机推荐

  1. django_websocket实现简单聊天室

    一.安装模块 pip install channels pip install channels-redis 二.代码 #websocket_v1/settings.py INSTALLED_APPS ...

  2. js类数组转数组的方法(ArrayLike)

    1. 什么是类数组ArrayLike(类数组  就是一个普通的  js对象) 类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符. 类数组对象不是数组对象,所以没有数 ...

  3. jmeter之-用Firefox录制https协议证书问题

    录制脚本的时候,比如录制https协议的百度网站 https://www.baidu.com ,所有录制设置均正常,但是在jmeter录制控制器里面就是没有任何录制的请求. 这个时候提示说证书不对 1 ...

  4. window_mysql踩坑

    https://blog.csdn.net/qq_37350706/article/details/81707862 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境 ...

  5. 20140613 Opencv重新编译 word小技巧

    1.OPENCVGPU重新编译+自己的文件 注意点: 1.生成OPENCV.sln解决方案后,在ALL_build的属性中,添加相应目录: ALL_BUILD中的Debug和Release上的Micr ...

  6. rmq +二分暴力 hdu 5726

    参考博客 题意:n 个数字的数列,有m个询问:求出  L   到   R 的  gcd(最大公约数 ),然后问这整个序列中有多少个区间的  gcd  和这个一样. 分析:L 到  R的gcd直接用RM ...

  7. Html+css编写太阳星系

    我们都知道太阳系是以太阳为中心的,和所有受到太阳的引力约束天体的集合体.包括八大行星(由离太阳从近到远的顺序:水星.金星.地球.火星.木星.土星.天王星.海王星),而我用html和css所写的就是八大 ...

  8. SetupFactory 许可协议设置

    我用的SetupFactory版本是9.1.0 没有汉化 一开始自己也不知道 百度发现有人在问同样的问题但是没解决 自己找了一会偶然发现 界面左侧 Screens->Before Install ...

  9. v-bind和v-model的区别

    1:v-bind动态绑定指令,默认情况下标签自带属性的值是固定的,在为了能够动态的给这些属性添加值,可以使用v-bind:你要动态变化的值="表达式" 2:v-bind用于绑定属性 ...

  10. Tomcat爆破

    把输入的账户和密码包起来 选择第三个模式 第一个添加用户名 第二个添加: 第三个添加密码 选择编码格式 取消打钩