JavaScript基本语法之操作符与流程控制(二)

1、操作符

运算符 operator

5 + 6

表达式 组成 操作数和操作符,会有一个结果

算术运算符

+ - * / %  

一元运算符

一元运算符:只有一个操作数的运算符

++ 自身加1

-- 自身减1

  • 前置++
var num1 = 5;
++ num1; 

var num2 = 6;
console.log(num1 + ++ num2);
  • 后置++
var num1 = 5;
num1 ++;    
var num2 = 6 
console.log(num1 + num2 ++);
  • 猜猜看
var a = 1; var b = ++a + ++a; console.log(b);    //5
var a = 1; var b = a++ + ++a; console.log(b);    //4
var a = 1; var b = a++ + a++; console.log(b);    //3
var a = 1; var b = ++a + a++; console.log(b);    //4

总结

前置++:先加1,后参与运算

后置++:先参与运算,后加1

上面两个理解后,下面两个自通

前置-- :先减1,后参与运算

后置-- :先参与运算,后减1

逻辑运算符(布尔运算符)

&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
!  非  取反(真时就是假,假时就是真)

关系运算符(比较运算符)

<  >  >=  <= == != === !==

==与===的区别:==只进行值得比较,===类型和值同时相等,则相等

赋值运算符

=  +=  -=  *=  /=  %= 

var num = 0;
num += 5;	//相当于  num = num + 5;

运算符的优先级

优先级从高到底
    1. ()  优先级最高
    2. 一元运算符  ++   --   !
    3. 算数运算符  先*  /  %   后 +   -
    4. 关系运算符  >   >=   <   <=
    5. 相等运算符   ==   !=    ===    !==
    6. 逻辑运算符 先&&   后||
    7. 赋值运算符

2、表达式和语句

表达式

一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量。表达式可以放在任何需要值的地方。

语句

语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序有很多个语句组成,一般情况下;分割一个一个的语句

 

3、流程控制

       顺序结构:从上到下执行的代码就是顺序结构,程序默认就是由上到下顺序执行的

       分支结构:根据不同的情况,执行对应代码

       循环结构:重复做一件事情

 

分支结构:

   1、if语句

    语法结构

if (/* 条件表达式 */) {
  // 执行语句
}



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




if (/* 条件1 */){
  // 成立执行语句
} else if (/* 条件2 */){
  // 成立执行语句
} else if (/* 条件3 */){
  // 成立执行语句
} else {
  // 最后默认执行语句
}

案例1:判断一个数是奇数还是偶数


	var num=parseInt(prompt("请输入一个数"));
	if (num%2==0) {
		console.log("是偶数");
	} else {
		console.log("是奇数");
	}

案例2:判断成绩的级别



		 var score=Number(prompt("请输入您的成绩"));

		 if (score < 0 || score > 100) {
		 		alert("分数必须在0—100之间");
		 	}
		// 	if(!isNaN(score)){//如果为TRUE就说明不是数字, 如果你之前是真,取反后就是假; 如果你之前是假,取反就是真。
		 	if (score>90&&score<=100) {
		 		alert("A");
		 	}else if(score>80){
		 		alert("B");
		 	}else if(score>70){
		 		alert("C");
		 	}else if(score>=60){
		 		alert("D");
		 	}else{
				alert("E");
		 	}

		 	}else{
		 		alert("您输入有误");
		 }

三元运算符

表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法

案例:判断是否成年

var age=parseInt(prompt("请输入您的年龄"));
		var result2=age>18?"成年了":"未成年";
		alert(result2);

		//大多数情况,使用if-else的表达式都可以用三元表达式来表示

switch语句:

语法格式:

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

break可以省略,如果省略,代码会继续执行下一个case
switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10)

案例: 显示星期几

var num=parseInt(prompt("请输入数字"));
		switch(num){
			case 1:alert("星期一");break;
			case 2:alert("星期二");break;
			case 3:alert("星期三");break;
			case 4:alert("星期四");break;
			case 5:alert("星期五");break;
			case 6:alert("星期六");break;
			case 7:alert("星期日");break;
			default:alert("输入错误");
		}

循环结构:while、do..while、for循环。

while语句

基本语法:

while (循环条件) {
  //循环体
}

案例1:计算1-100之间的和


// 初始化变量
var i = 1;
var sum = 0;
// 判断条件
while (i <= 100) {
  // 循环体
  sum += i;
  //sum=sum+i
  // 自增
  i++;
}
console.log(sum);

案例2:求1-100之间奇数的和


		 var sum=0;
		 var i=0;
		 while(i<=100){
		 	if (i%2!==0) {
				sum=sum+i;
			}
		 	i++;
		 }
		alert(sum);

do...while语句

do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。

基础语法:

do {
  // 循环体;
} while (循环条件);

代码示例:

// 初始化变量
var i = 1;
var sum = 0;
do {
  sum += i;//循环体
  i++;//自增
} while (i <= 100);//循环条件

案例1:求100以内所有3的倍数的和

	 var i=1;
     var sum=0;
		 do{
			
		 	if(i%3==0){
		 		sum=sum+i;
			}
		 	i++;
		 }while(i<=100);
		 alert(sum);

for语句

while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便

for循环语法:

// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
  // 循环体4
}

执行顺序:1243 ---- 243 -----243(直到循环条件变成false)

  1. 初始化表达式

  2. 判断表达式

  3. 自增表达式

  4. 循环体

案例1:打印9*9乘法表

    //控制行数
	 for(var i=1;i<=9;i++){
    //控制列,也可以认为是控制行的个数
	 	for(var j=1;j<=i;j++){
	 	document.write(j+"*"+i+"="+i*j);
	 }
	 document.write("<br/>");
	 }

案例2:本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?

 var money=10000;
  var rate=0.003;
    for(i=1;i<=5;i++){
     	money=money+money*rate;
      }
      alert(money);

案例3:有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?(兔子的规律为数列,1,1,2,3,5,8,13,21)

var num1=1;//一月份
     var num2=1;//二月份
     var sum=0;
     for(i=3;i<=12;i++){//从三月份开始
     	sum=num1+num2;
     	num1=num2;
     	num2=sum;
     }
     alert(sum);

4、continue和break

break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)

continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)

案例1:求1-100的奇数和(用continue)

         var sum=0;
		 for (var i = 1; i <=100; i++) {
			if(i%10==0){
			  i++;
		 	  continue;
		 	}
		 	sum=sum+i;
		 	i++;
		 }
		 alert(sum);

 

案例2:求100-200之间第一个能被7整数的数(break)

for (var i = 100; i <=200; i++) {
 	  if(i%7==0){
	  alert(i);
	  break;
      }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值