目录
var money=1200;
var price=prompt('商品单价');
var number=prompt('商品数量');
var totalprice=price*number;
if(totalprice>money){
alert('您的余额不足!');
alert('pay error');
}else if(totalprice<=money && totalprice>=1000){
alert('您已享有满1000打九折的优惠,折后价为'+totalprice*0.9);
alert('pay sucess');
}else{
alert('您将消费:'+totalprice);
alert('pay sucess');
}
一、流程控制
程序 = 数据 + 算法
程序的执行方式:顺序执行、选择执行、循环执行
1.if语句
if(条件表达式){
语句块
} //如果if后的大括号中的语句块只有一行语句,大括号可以省略
以下数据数据转换为布尔型结果为false: 0 NaN '' undefined null
2.if-else语句
if(条件表达式){
语句块1
}else{
语句块2
}
3.if-else嵌套
if(条件表达式){
语句块1
}else if(条件表达式n){
语句块n
}else{
语句块n+1 //之前的所有表达式都是false
}
4.switch-case语句
switch(表达式){
case 值1:
语句块1;
break; //结束执行,跳出switch-case语句
case 值n:
语句块n;
break;
default:
语句块n+1 //以上表达式和每个值比较都是false
}
//switch后的表达式在和case后的值比较的时候,只能进行全等于的比较
对比switch-case和if-else嵌套
if-else嵌套在比较的过程中,可以进行各种形式的比较,switch-case只能进行全等于的比较
if-else适用范围更加广泛
switch-case语法更加简洁,执行效率更高
//使用switch-case对一个人的成绩判断,不在0~100之间打印非法的成绩,否则判断
//提前处理成绩,缩小范围 分数/10,取整
//90~100 优秀 9.x 10 9 10
//80~90以下 良好 8.x 8
//70~80以下 中等 7.x 7
//60~70以下 及格 6.x 6
//其它 不及格
var score=62;
if(score>100 || score<0){
console.log('非法的成绩');
}else{
//0~100之间
switch( parseInt(score/10) ){
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('不及格');
}
}
二、循环
循环:一遍又一遍执行相同或者相似的内容
循环的要素:循环条件(控制是否继续执行循环),循环体(要执行的相同或者相似的代码)
break:用于循环体中,一旦执行就会强制结束循环
continue:跳过某一次循环,还需继续执行下一次循环
1.while循环
while(循环条件){
循环体
}
//循环打印20~11之间所有的整数
//初始值
var i=20;
while(i>=11){//循环条件
//循环体
console.log(i);
//增量
i--;
}
//计算1~100之间所有偶数的和
//循环产生所有整数
//判断是否为偶数
//求和
var i=1;
//声明变量,用于保存总和
var sum=0;
while(i<=100){
//i代表所有的整数
//判断i是否为偶数
if(i%2===0){
//i代表所有的偶数
//求和
sum=sum+i;
}
i++;
}
//循环结束后,打印最终的sum
console.log(sum);
2.do-while循环
do{
循环体
}while(循环条件);
3.for循环
for(初始值;循环条件;增量){
循环体
}
4.循环嵌套
一个循环体的内部,又出现了其它的循环
人因两个循环之间都可以相互嵌套
//九九乘法表------------------九九乘法表--------------------九九乘法表
for(var j=1;j<=9;j++){
for(var i=1,str='';i<=j;i++){
//i代表所有的整数
//把每一个整数拼接到字符串中
str=str+i+'*'+j+'='+(i*j)+' '; //''+1+'*5=' '1*5='
if((j===3 || j===4) && i===2){
str=str+' ';
}
}
console.log(str);
}
拓展
var money=1200;
var price=prompt('商品单价');
var number=prompt('商品数量');
var totalprice=price*number;
if(totalprice>money){
alert('您的余额不足!');
alert('pay error');
}else if(totalprice<=money && totalprice>=1000){
alert('您已享有满1000打九折的优惠,折后价为'+totalprice*0.9);
alert('pay sucess');
}else{
alert('您将消费:'+totalprice);
alert('pay sucess');
}
//-----------------------这兔子好能生游戏---------------------
//https://wenku.baidu.com/view/af66e2f14afe04a1b071de42.html
//P10
function fib1(n){
var n1=1;
var n2=1;
//从第三项开始
for(var i=3;i<=n;i++){
var c=n2;
n2=n1+n2; //n2赋值C!!!!!!!
n1=c;
}
return n2;
}
var he=fib1(3);
console.log(he);
//遍历数组,翻转
var arr=['a','b','c','d'];
var arr2=[];
for(var i=0;i<arr.length;i++){
//console.log(arr.length-i-1);
arr2[i]=arr[arr.length-i-1];
}
console.log(arr2);
//从小到大 冒泡
var a=[5,3,7,2,9];
for(var i=0;i<a.length-1;i++){
//i a.length
//0 5 4
//1 5 3
//2 5 2
//3 5 1
//内层循环:控制每一轮比较的次数
for(var j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
var c=a[j];
a[j]=a[j+1];
a[j+1]=c;
}
}
}
console.log(a);
console.log(a.sort());
//假设一张纸的厚度0.0001米,计算折叠多少次能达到珠穆朗玛峰高度(8848米)
//循环体,执行折叠,每次折叠厚度乘以2,
//如果厚度小于8848
//声明变量,记录纸的厚度
var height=0.0001;
//声明变量,记录折叠的次数
var count=0;
do{
//折叠:厚度在原来基础之上乘以2
height*=2;
//折叠一次打印厚度
console.log(height);
//记录一次
count++;
}while(height<8848);
//循环结束后,打印记录的次数
console.log(count);