条件语句、循环语句
条件语句
if(条件) {
执行语句 // 条件成立才执行
}
if(1 > 0) {
document.write("11");
}
if(1 > 0 && 8 > 9) { // 并且:一假即假
document.write("11");
}
if(1 > 0 || 8 > 9) { // 或者:一真即真
document.write("11");
}
var scope = parseInt(window.promp('input')); //执行之后会弹窗提示输入内容(分数)
document.write(scope); // 打印结果就是输入的值
- 90-100 优秀
- 80-90 良好
- 70-80 一般
- 60-70 及格
- 60以下 不行啊
if (score > 90 && score < 100) {
document.write("优秀")
}
if (score > 80 && score <= 90) {
document.write("良好")
}
if (score > 70 && score <= 80) {
document.write("一般")
}
if (score > 60 && score <= 70) {
document.write("合格")
}
if (score < 60) {
document.write("唉")
}
// 组合
if (score > 90 && score < 100) {
document.write("优秀")
}else if (score > 80 && score <= 90) {
document.write("良好")
}else if (score > 70 && score <= 80) {
document.write("一般")
}else if (score > 60 && score <= 70) {
document.write("合格")
}else if (score < 60) {
document.write("唉")
}else {
document.write("error")
}
循环语句
for循环
执行1 判断2 执行3 // 一直重复,直到2不成立
↓ ↓ ↓
for (var i = 0; i < 10; i++) {
document.write('a'); // 把a循环执行十遍,这是正常写法
}
// 分解:
1.var i =0
2.if(i < 10) {
document.write('a');
}
3.i++; // -->i = 1;
4.if(i < 10) {
document.write('a');
}
// (重复执行3、4步,直到i不等于10)
// 写法二
var i = 0;
for (; i < 10;) {
document.write('a');
i++;
}
// 写法三
var i = 1;
var count = 0;
for (; i;) {
document.write('a');
count ++;
if(count == 10) {
i = 0; // 0就是假 会暂停循环
}
}
// 写法四
var i = 1;
// var count = 0;
for (; i;) {
document.write('a');
// count ++;
i++;
// if(count == 10) {
if(i == 11) {
i = 0; // 0就是假 会暂停循环
}
}
// 打印0-9
for (var i = 0; i < 10; i++) {
document.write(i);
}
// 求和
var count = 0;
for (var i = 0; i < 10; i++) {
count += i;
document.write(count);
}
// 打印能被3整除,并且能被5整除的数
for (var i = 0; i < 100; i++) {
if(i % 3 ==0 || i % 5 ==0 || i % 7 ==0) {
document.write(i + " ");
}
}
// 打印0-99
for (var i = 0; i < 100; i++) {
document.write(i + " ");
}
// 方法二 倒着打
var i = 100;
for (; i--; ) { //能打印出0是因为i=1的时候判断成立 判断完i变成0(因为--是先执行后赋值)
document.write(i + " "); //i变成0时为false 停止循环
}
while循环
// for循环打印0-9
var i =0;
for(;i < 10;) {
document.write(i);
i ++;
}
//while循环打印0-9 (while循环是for循环的简化版)
while(i<10) {
document.write(i);
i ++;
}
死循环
// 死循环 判断条件一直为真
while(1) {
documrnt.write(i);
i ++;
}
// 100以内是7的倍数或者含7的数
var i = 0;
while(i < 100) {
if(i % 7 == 0 || i % 10 ==7) {
document.write(i + " ");
}
i ++;
}
do while循环(不常用)
// 先执行一次,再判断语句是否成立
var i = 0;
do {
document.write("a");
i ++;
}while(i < 10)
练习
-
计算2的n次幂,n可输入,n为自然数。
var n = parseInt(window.promp('input')); var mul = 1; for(var i = 0; i < n;i++) { mul *= 2; } document.write(mul);
-
计算n的阶乘,n可输入。
var n = parseInt(window.promp('input')); var mul = 1; // i = 0;i <=n; 循环圈数不变 for(var i = 1; i <= n;i++) { mul *= i; } document.write(mul);
-
著名的斐波那契数列。
1 1 2 3 5 8输出第n项// 第n位的值等于(n-1)+(n-2) f s t //f第一位 s第二位 t第三位 游标一直往前移 1 1 2 3 5 8 f s t var n = parseInt(window.promp('input')); var first = 1, second = 1, third; // 不加if循环也可以直接让third初始值为1 if(n > 2) { for(var i = 0, i < n - 2; i ++) { third = first + second; first = second; second = third; } document.write(third); }else { document.write(third); }
-
编写一程序,输入一个三位数的正整数,输出时反向输出。
如:输入456,输出654.// 取余除减 var n = parseInt(window.promp('input')); a = n % 10; // a=6 n -= a; // n=450 c = n % 100; // c=50 d = n - (n % 100); // n=450-50=400 e = n / 100; // e=4 f = a * 100 + c + e; document.write(f);
-
输入a,b,c三个数字,打印出最大的。
if(a > b && a > c) { document.write(a); }else if(b > a && b > c) { document.write(b); }else { document.write(c); }
// 方法二: if(a >b) { if(a > c) { document.write(a); }else{ document.write(c); } }else{ if (b > c) { document.write(b); }else { document.write(c); } }
-
打印出100以内的质数。
// 方法一: var count = 0; //count也可以放在第二个for循环中 for(var i = 0; i < 100; i ++) { // 看看每一个i是否是质数(从自己开始除到1 看看是不是只有自己和1能被整除) for(var j = 1; j <= i ;j ++) { if(i % j == 0;) { // 标记次数为2的就是质数(被自己和1整除) count ++; } } if(count ==2) { document.write(i + “ ”); } count = 0; // 一个值判断完之后初始化count }
// 方法二: // 100等于:10 *10 4 * 25 2 * 50 1 * 100 2.5 * 40 1.25 * 80 // 判断完了一个 就不用判断另一个 其实也就是判断10以下的数就好了 // 判断一个数是否为质数就是判断这个数和10以下的数能整除几次 var count = 0; //count也可以放在第二个for循环中 for(var i = 2; i < 100; i ++) { for(var j = 1; j <= Math.sqrt(i) ;j ++) { // 循环圈数变少 if(i % j == 0;) { count ++; } } if(count ==1) { document.write(i + “ ”); } count = 0; // 一个值判断完之后初始化count }
条件语句补充
switch case
// 找到满足条件的就打印往后的语句
var n =3; // n=a 输出abc n=true 输出bc n=3输出c 添加break之后就不会这样了
switch(n) {
case "a":
console.log('a');
break; // 只会打印满足条件的行(找到满足的就会跳出循环)
case "true":
console.log('b');
break;
case 3:
console.log('c'); // 打印结果是c
break;
}
var date = window.prompt('input');
switch(date) {
// 工作日都打印working(没有break)
case "monday":
case "tuesday":
case "Wednesday":
case "thursday":
case "friday":
console.log('working');
break;
case "周六":
case "周日":
console.log('relaxing');
break;
}
break(终止循环)
// break必须放在循环里面
var i = 0;
while(1) {
i ++ ;
console.log(i);
if(i > 100) {
break; // 终止循环
}
}
var i = 0;
var sum = 0;
for(i = 0; i < 100; i ++) {
sum += i;
console.log(i);
if(sum > 100) {
break;
}
}
continue
for(var i = 0; i < 100; i++) {
if(i % 7 ==0 || i % 10 == 7) {
continue; // 继续(会终止本次循环来进行下一次循环,也就是不会出现含7和余7的数)
}
console.log(i);
}