JavaScript基础(二)选择语句、循环语句

        在JavaScript当中,程序的执行方式分为选择执行循环执行顺序执行。通常的程序代码都是顺序执行。

var a = 3;
console.log(a);

        比如上面这两行简单的代码,先赋值,再打印,这就是顺序执行。

        我们这期的重点为选择执行循环执行,选择执行的典型代表就是流程控制,如if语句、if-else语句、if-else嵌套、switch-case语句,接下来我们将依次进行描述。而循环执行则是常见的while循环、do-while循环、for循环和循环嵌套。


目录

一、流程控制(选择执行)

1. if语句

2. if-else语句

3. if-else嵌套

4. switch-case语句

二、循环语句(循环执行)

1. while循环

2. do-while循环

3. for循环

4. 循环嵌套

三、选择与循环语句例题


一、流程控制(选择执行)

1. if语句

if ( 条件表达式 ) {
      语句块
}

它的格式很简单,常用来进行判断。先判断 if 之后的条件是否满足,如果满足则执行语句块。比如判断一个人的年龄,是否为成年人,代码如下:

var age = 30;
if (age >= 18){
	console.log('成年人');//"成年人"
}

定义了年龄为30,使用if进行判断,30大于18,所以打印“成年人”。需要注意的是,如果 if 后的语句块中只有一行代码,则 { } 可以省略。

2. if-else语句

if ( 条件表达式 ) {
     语句块1
}else{
     语句块2
}

if-else 语句与 if 语句的区别仅仅在于加了else 判断,先判断 if 后的条件是否满足,如果满足执行语句块1,不满足则执行 else 后的语句块2。再拿上面的成年人来进行判断:

var age = 12;
if (age >= 18){
	console.log('成年人');
}else{
	console.log('未成年人');
}

定义年龄 age 为12,12不大于18,所以要执行else后的语句,即打印“未成年人”。

3. if-else嵌套

if ( 条件表达式1 ) {
     语句块1
}else if { 条件表达式n ){
     语句块n
}else {
     语句块n+1( 前面全为false才执行此语句块 )
}

if-else嵌套则是多个 if-else 语句的组合,可以对多个条件进行判断。举个打印成绩的例子:

var f = 75;
if (f > 100 || f < 0){
	console.losg('非法的成绩!');
}else if (f >= 90){
	console.log('优秀');
}else if (f >= 80){
	console.log('良好');
}else if (f >= 70){
	console.log('中等');
}else if (f >= 60){
	console.log('及格');
}else{
	console.log('不及格');
}

定义分数为75分,则依次往下进行判断,直到符合条件执行该条件下的语句块。该题打印结果为“中等”。

4. switch-case语句

switch ( 表达式 ){
      case 值1:
        语句块1
        break;(结束执行,跳出当前语句)
      case 值n:
        语句块n
        break;
        default:
        语句块n+1( 前面全为false才执行此语句块 )
}

switch-case 语句的运行方式为:先判断 switch 后的表达式的值,看它的值满足哪一个 case 的值,如果满足则执行该 case 后的语句块,执行结束后直接跳出(break)语句,如果前面都不满足,则执行 default 之后的语句块

switch-case 语句也可用来判断成绩区间:

var score = 90;
if (score < 0 || score > 100){
	console.log('成绩错误!!!');
}
var end = parseInt(score /= 10);
switch(end){
	case 10:
	case 9:
		console.log('优秀');
	break;
	case 8:
		console.log('良好');
	break;
	case 7:
		console.log('中等');
	break;
	case 6:
		console.log('及格');
	break;
	default:
		console.log('不及格!');
	}
	

switch-case 使用过程中需要注意以下几点:

        表达式在与case后面的值比较的时候,用的是全等于(===)即同时判断值和类型。
        switch-case只能是全等于的比较,但结构更为清晰,执行效率更高

二、循环语句(循环执行)

1. while循环

初始值
while ( 循环条件 ){
      循环体
      增量
}

while 循环的执行为先判断循环条件,循环条件为 true,进入循环,false 则跳出。举一个简单的小例子:

var i = 1;
while (i <= 10){
	i++;
	console.log('123456');
}

定义 i 的值为1,条件为 i<=10,如果 i 满足条件则进入循环,i 自增后打印“123456”,直到 i 的值大于10为止。该程序结果为打印10次“123456”。

2. do-while循环

初始值
do {
    循环体
    增量
} while ( 循环条件 ) ;

do-while 可以认为与 while 相反,先进行循环,再判断循环条件,结果为 true 继续进入循环,结果为 false 则结束。

var i = 1;
do{
	console.log(i);
	i++;
}while (i <= 10);

该程序结果为打印1到10,先进行打印,再判断条件,直到条件判断为 false 跳出循环。

3. for循环

for ( 初始值 ; 循环条件 ; 增量 ) {
        循环体
}

for 循环可能是在编程过程中使用最多的一个循环,它的执行方式为从初始值开始,判断循环条件,结果为 true 则执行循环体,最后执行增量,增量之后再执行循环条件。直至循环条件为 false时循环结束。

for (var i = 1;i <= 10;i++){
	console.log(i);
}

该例子同样为打印1到10。

4. 循环嵌套

        所谓循环嵌套就是在一个循环体内部又出现了其他的循环,任意两个循环之间都可以进行相互嵌套。嵌套后外层循环控制循环的行数;内层循环控制每一行拼接的数量。

//外层循环
for (var i = 1;i <= 5;i++){
	//内层循环
	for (var j = 1,str = '';j <= i;j++){
		str = str + '*';
	}
	console.log(str);
}

 如上代码,两个 for 循环嵌套,外层循环控制该循环为5行,内层则控制打印的行内容为‘*’且*的数量不断自增,效果如下:


三、选择与循环语句例题

        了解了选择与循环语句后,我们通过几道例题来巩固一下:

//1.一张纸可以折无限次数,纸的厚度为0.03毫米,问:折多少次可以达到珠穆朗玛峰高度8848米?
var h = 0.00003;//初始化纸的厚度为0.00003
var count = 0;//count用于记录次数
do
{
	h *= 2;//h = h * 2
	count++;
}
while (h <= 8848);//直到h的值大于8848,跳出循环
console.log(count);//打印次数
//2.用while函数写出1~100之间所有偶数的和
var i = 1;
var sum = 0;//sum用于记录最后的和
while (i <= 100){//判断条件i为1~100
	if (i % 2 === 0){//与2取余结果为0的则为偶数
		sum += i;
	}
	i++;
}
console.log(sum);
*/
//3.打印九九乘法表
for (i = 9;i >= 1;i--){
	//内层循环,控制每行列数
	for (j = 9,str = '';j >= i;j--){
		//列 + * + 行 + = + 乘积结果
		str = str + j + '*' + i + '=' + (j*i) + ' ';
		//将第3,4行的第2列后加一个空格
		if (i === 9 && j === 1){
			str = str + '   ';
}
	}
	console.log(str);//每一行拼接结束后即打印
}
//4.打印2000~2100之间前10个闰年
for (var year = 2000,count = 0;year <= 2100;year++){
	//count用于记录闰年的个数
	if (year % 4 === 0 && year % 100 !== 0 || year % 400 ===0){
		console.log(year);
		count++;
	}
	if (count === 10){
		break;
	}
}
console.log(count);
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敬 之

您的鼓励就是我持续创作的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值