首页 > 编程语言 >【笔记02】Javascript - 基本概念 - (语句、练习)

【笔记02】Javascript - 基本概念 - (语句、练习)

时间:2022-10-27 18:02:00浏览次数:45  
标签:02 语句 Javascript write case score var 100 document

Javascript 基本概念:语句

if、if else

for 循环

while 循环

do while 循环

switch case

break

continue

if 、if else

语法:

if(条件){
语句
}else if(){
语句
}else{
语句
}

条件成立,执行;条件不成立,不执行;

if(1>0){  // 条件成立
document.write("hello world");
}

if(1>0 && 8>9){ // false 这里的&&可以理解为并且
}

实例:根据得分区间去相应公司

var score = parseInt(window.prompt('input'));
// 90 - 100 ali
// 80 - 90 tecent toutiao meituan didi
// 70 - 80 baidu eleme xiecheng 58
// 60 - 70 mogujie
// 60以下 再接再厉

if(score > 90 && score < 100) {
document.write('ali');
}
if(score > 80 && score <=90) {
document.write('tencent');
}
if(score > 70 && score <=80) {
document.write('baidu');
}
if(score > 60 && score <=70) {
document.write('mogujie');
}
if(score < 60) {
document.write('Oh my god');
}

还可以优化一下,因为条件是“互斥”的,可以用else if

var score = parseInt(window.prompt('input'));

if(score > 90 && score < 100) {
document.write('ali');
}else if(score > 80 && score <=90) {
document.write('tencent');
}else if(score > 70 && score <=80) {
document.write('baidu');
}else if(score > 60 && score <=70) {
document.write('mogujie');
}else if(score < 60) {
document.write('Oh my god');
}else{
document.write("error"); // 大于100的情况
}

if <--> && 转换 ;if <--> || 转换; 利用中断效果,以下三段代码是等价的。

if(2 > 1){
document.write("hello world");
}

(2 > 1) && document.write("hello world");
(1 > 2) || document.write("hello world");

for 循环

for(var i = 0; i < 3; i++) {
document.write("a");
}

循环的执行过程

1. var i = 0; 

2. if(i < 3){ // 条件成立

document.write('a');

}

3. i++; // i = 1; 

4. if(i < 3){ // 条件成立

document.write('a');

}

5. i++; // i = 2;

6. if(i < 3){ // 条件成立

document.write('a');

}

7. i++; // i = 3;

8. if(i < 3){} // 条件不成立,退出循环

for 循环也不是固定那个格式,也可以很灵活,效果一样。

var i = 1;
for(; i ;){
document.write('a');
i ++;
if(i == 3){
i = 0;
}
}

实例1:求0-9的和

var sum = 0;
for(var i = 1; i < 10; i++){
sum += i;
}
document.write(sum); // 45

实例:打印出0-100内,即能被3整除又能被7整除的数。

for(var i = 1; i < 100; i++){
if(i % 3 == 0 && i % 7 == 0){
document.write(i+" "); //21 42 63 84
}
}

while 循环

语法:

while(条件){ 条件为真执行,条件为假不执行

语句

}

var i = 0;
while(i < 10){
document.write(i);
i++;
}

无限循环(死循环):never-ending loop

while(1){}

实例:100以内缝7喊,即带7或7的倍数打印出来

var i = 1;
while(i < 100){
if(i % 7 == 0 || i % 10 == 7){ // 设置两个或的条件
document.write(i + " "); // 7 14 17 ...
}
i++;
}

do while循环

语法:代码先执行一次,再看条件是否满足,满足再执行。

do{

代码

}while(条件)


可读性不好。不讲了。

switch case

语法:

switch(条件){

case 值:

...

}

条件和值比对,一样才执行,没有大于小于一说

var n = true;
switch(n){
case "a":
console.log('a');
case 2:
console.log('b');
case true:
console.log('c');
}

// n = true 时,与case里的true对比,结果输出:c;
// n = 2时,与case里的2对比,结果输出 bc。为什么?
// 这种情况是:当找到满足条件的语句执行后,后面也不判断了,都连带执行了,俗称“往下漏”。
// n = "a"的话,会输出 abc,这样的特性有时不满足需求;
// 可以使用break来中断;

break

可以使用 break 来终止语句的执行;也可以终止循环。

var n = true;
switch(n){
case "a":
console.log('a');
break;
case 2:
console.log('b');
break;
case true:
console.log('c');
break;
}

实例:中断switch的往下漏;

当判断"比较精准的比对"时,使用switch case比较适合;

周一到周五都是 working 是一样的,周六周天是 relaxing 也一样,可以利用“往下漏”的特性来简化;

// 当要判断周一到周五时打印"working",判断周六周天时打印"relaxing"
var date = window.prompt("请输入");
switch (date) {
case "monday":
case "tuesday":
case "wednesday":
case "thursday":
case "firday":
console.log("working");
break;
case "saturday":
case "sunday":
console.log("relaxing");
break;
}

实例:终止循环 when;

var i = 0;
when(1){
i ++;
console.log(i);
if(i > 100){
break;
}
}

实例:终止循环 for;

break 必须放在循环里面,否则报错;

sum = 0;
for(var i = 0; i < 100; i++){
sum += i;
console.log(i); // 1到14
if(sum > 100){
break;
}
}

continue

终止本次循环,进行下一次循环;

// 缝七过
for(var i =0; i < 100; i++){
if(i % 7 == 0 || i % 10 == 7){
continues;
}
console.log(i);
}

作业练习

1>  计算2的N次幂,N可输入,N为自然数;

// 1*2
// 1*2*2
// 1*2*2*2

var N = parseInt(window.prompt('input'));
res = 1;
for(var i = 0; i < N; i ++) {
res = res * 2;
}
document.write(res); // 输入6,输出64

2>  计算N的阶乘,N可输入;

// 5! = 5*4*3*2*1
// 从1开始乘到他本身,0的阶乘是1

var N = parseInt(window.prompt('input'));
var res = 1;
for(var i = 1 ; i <= N; i++){
res *= i;
}
document.write(res); // 0的阶乘是1,1的阶乘也是1;

3>  著名的斐波那契数列, 1 1 2 3 5 8 输出第N项;

// 第一步计算,先让f位和s位相加和到t;
// 移动游标,把s位赋值给f位,再把t位赋值给s位;
// 前两项是已知为1,第N项输出,需要循环N-2次;

var N = parseInt(window.prompt('input'));
var f = 1,
s = 1,
t;
if(N > 2){
for(var i =0; i < N - 2; i++){
t = f + s;
f = s;
s = t;
}
document.write(s);
}else{
document.write(1);
}

4>  输入一个三位数的正整数,输出时反向输出,如:输入456,输出654;

// 用%的方法,挨个取

var N = parseInt(window.prompt('input'));
var res = 0;
var a = (N % 100) % 10; // 6
var b = ((N - a) / 10) % 10; // 5
var c = (N - a - b * 10) / 100; // 4
res = a * 100 + b * 10 + c;
document.write(res);

5>  输入a,b,c三个数字,打印出最大的;

// 先拿ab比,a大的话,b就没用了。再拿ac比,取大;
// 如果ab比,b大的话,再拿bc比,取大;
// 如果ab相等,又大于c,那取b;

var a = parseInt(window.prompt('input'));
var b = parseInt(window.prompt('input'));
var c = parseInt(window.prompt('input'));

document.write("这三个数是:a = " + a + "; b = " + b + "; c = " + c + ";")
var res = "<br/>最大数是:";
if(a > b){
if(a > c){
document.write(res + "a = " + a +";");
}else{
document.write(res + "c = " + c +";");
}
}else{
if(b > c){
document.write(res + "b = " + b +";");
}else{
document.write(res + "c = " + c +";");
}
}

6> 打印出100以内的质数;

// 质数只能被1和本身整除,例如:5只会被1和5整除;
// 使用取%的个数,取模为0只有2次的就是质数,大于2次的就不是。
// 每次都要有个n来计数,每次n都要归零

var Num = 100;
var n = 0;
for(var i = 1; i <= Num; i++){
for(var j = 1; j <= i; j++){
if(i % j == 0){ // 挨个%一遍,但凡%的结果n>2,就不是质数
n ++;
}
}
if(n == 2){
document.write(i + " ");
}
n = 0; // 重置0
}

标签:02,语句,Javascript,write,case,score,var,100,document
From: https://blog.51cto.com/ahuiok/5801643

相关文章