1 条件判断语句

条件语句用于基于不同的条件来执行不同的动作。

1.1if 语句

if (condition)
{
    当条件为 true 时执行的代码
}

1.2if...else 语句

if (condition)
{
    当条件为 true 时执行的代码
}
else
{
    当条件不为 true 时执行的代码
}

1.3if...else if...else 语句

if (condition1)
{
    当条件 1 为 true 时执行的代码
}
else if (condition2)
{
    当条件 2 为 true 时执行的代码
}
else
{
  当条件 1 和 条件 2 都不为 true 时执行的代码
}

练习1:输入一个数,判断是不是0到100之间

代码:

var num=parseInt(prompt("输入一个0到100之间的数"));
if(num>=0 && num<=100){
alert(num+" 是0到100之间的数");
}

练习2:猜数游戏(用户输入一个数,和随机数进行比较)

代码:

//随机数和用户输入的数比较
var x=parseInt(Math.random()*100);
console.log(x);
var y=parseInt(prompt("输入0到100之间一个数"));
if(x>y){
alert("你的数较小");
} else if(x<y){
alert("你的数较大");
} else{
alert("猜对了");
}

结果:

练习3,体重测量

代码:

var sex=prompt("请输入您的性别");

if(sex=='男'){
var height1=+prompt("请输入您的身高,单位cm");
var weight1=+prompt("请输入您的体重,单位kg");
var num1=weight1-height1+100;
if(num1>3){
alert("偏胖");
} else if(num1<-3){
alert("偏瘦");
} else{
alert("标准");
}
} if(sex=='女'){
var height2=+prompt("请输入您的三位数身高,单位cm");
var weight2=+prompt("请输入您的体重,单位kg");
var num2=weight2-height2+110;
if(num2>3){
alert("偏胖");
} else if(num2<-3){
alert("偏瘦");
} else{
alert("标准");
}
}

结果:

2 switch 匹配语句

switch 语句用于基于不同的条件来执行不同的动作。

2.1语法

switch(n) {

case 1: 执行代码块 1

break;

case 2: 执行代码块 2

break;

default:

与 case 1 和 case 2 不同时执行的代码

}

工作原理:

首先设置表达式 n(通常是一个变量)。

随后表达式的值会与结构中的每个 case 的值做比较。

如果存在匹配,则与该 case 关联的代码块会被执行。

使用 break 来阻止代码自动地向下一个 case 运行。

2.2 case的穿透

解释:首先找case,满足条件后,执行相应的代码,执行完找break,

如果没有break,接着向下执行,又找到一个case,会执行这个case的代码块,然后继续找break,直到代码块结束。

如果default在最上方,但是没加break,就会往下执行。

示例:

代码:

        var str='星期六';
switch(str){
default:
alert('周末');
break; //试试把这个break去掉会怎么样 case '星期一':
case '星期二':
case '星期三':
case '星期四':
case '星期五':
alert('工作日');
break;
}
alert('结束');

3 for循环

3.1语法

for(初始化 ; 条件判断 ; 状态改变){

执行的代码

}

3.2执行原理(分别用数字代表每一部分)

0:初始化

1:条件判断

2:状态改变

3:执行的代码

执行步骤为:

0-1(满足条件)-3-2-1-3-2-1…

1(不满足,直接跳出)

如果条件一直满足,会一直执行,进入死循环

有时候,会写一个死循环,然后在代码块中进行中止,可以这样写:

for(;;){

...

}

练习:

1、求奇数和,偶数和

代码:

                var n=+prompt("请输入一个正整数");
var sum1=0; //用来存奇数和
var sum2=0; //用来存偶数和 for(var i=1; i<=n; i++){
if(i%2!=0) //判断是奇数
sum1=sum1+i; if(i%2==0) //判断是偶数
sum2=sum2+i;
} alert('1到'+n+'的奇数和为:'+sum1);
alert('1到'+n+'的偶数和为:'+sum2);

结果:

2、水仙花数有哪些(三位数)

代码:

for(var i=100; i<1000; i++){ //确保是一个三位数

    var a=parseInt(i%10);     //取出个位数
var b=parseInt(i/10)%10; //取出十位数
var c=parseInt(i/100); //取出百位数 if(a*a*a+b*b*b+c*c*c==i){ //如果各位的立方和等于本身,就是水仙花数
console.log(i);
}
}

结果:

3、循环猜数

代码:

var x=parseInt(Math.random()*100);

for(;;){
var y=+(prompt("请猜数!")); if(y>x){
alert("大了");
} else if(y<x){
alert("小了");
} else{
alert("猜对了");
break;
}
}

4、猜拳游戏

代码:

var rad=parseInt(Math.random()*3); //随机产生0,1,2
var num=+prompt('请出拳:0代表剪刀;1代表石头;2代表布'); switch(rad){
case(0):{
switch(num){
case(0):alert('平手');break;
case(1):alert('你赢了');break;
case(2):alert('你输了');break;
default:alert('出拳错误');break;
}
}
break;
case(1):{
switch(num){
case(0):alert('你输了');break;
case(1):alert('平手');break;
case(2):alert('你赢了');break;
default:alert('出拳错误');break;
}
}
break;
case(2):{
switch(num){
case(0):alert('你赢了');break;
case(1):alert('你输了');break;
case(2):alert('平手');break;
default:alert('出拳错误');break;
}
}
break;
}

结果:

4 while循环

while (条件)
{
    需要执行的代码
}

常见写法:

var i=0;

while(i<10){

语句;...

i++;

}

whild(true){

if(){

break;

}

}

for和while的应用场景不一样:

for用在循环次数确定的时候

while用在循环次数不确定的时候

5 do/while 循环

  do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。  

do
{
    需要执行的代码
}
while (条件);

6 两个关键字

break 语句用于跳出循环,也就是中止循环

continue 用于跳过循环中的一个迭代,即跳过本次循环,

7 循环嵌套

示例:

1、公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性

代码:

var count=0;  //计数
for(var cock=1; cock<100/2; cock++){ //如果全部买公鸡
for(var hen=1; hen<100/1; hen++){ //如果全部买母鸡
for(var chick=1; chick<100/0.5; chick++){ //如果全部买小鸡
if(cock*2+hen*1+chick*0.5==100 && cock+hen+chick==100){ //共100文线,100只鸡
count++;
console.log('公鸡买'+cock+'只,母鸡买'+hen+'只,小鸡买'+chick+'只');
}
}
}
}
console.log('共有'+count+'种方案');

结果:

2、有一张0.0001米的纸,对折多少次可以达到珠穆朗玛峰的高度8848;

代码:

var paper=0.0001; //一张纸的厚度
var height=8848; //珠穆朗玛峰的高度
var count=0; //折纸次数 while(true){
paper = paper*2; //每次对折,就是乘以2
count++;
if(paper>=height){ //超过高度才跳出循环
break;
}
} console.log('对折 '+count+' 次');

结果:

3、输出乘法口诀表

代码:

for(i=1; i<=9; i++){
  for(j=1; j<=i; j++){
    document.write(j+'*'+i+'='+i*j+'&nbsp;&nbsp;');
  }
  document.write('<br>');
}

结果:

4、100内与7相关的数

代码:

for(var i=1; i<100; i++){
var a=parseInt(i%10); //取出个位数
var b=parseInt(i/10)%10; //取出十位数
var c=parseInt(i/100); //取出百位数 if(a==7||b==7||c==7||i%7==0){ //有7或能被7整除
console.log(i);
}
}

结果:

5 打印星星*

1)

var n=5;

for(var i=0; i<n; i++){
for(var j=0; j<2*i+1; j++){
document.write('*');
}
document.write('<br>');
}

2)

var n=5;

for(var i=0; i<n; i++){
for(var j=0; j<n-i; j++){
document.write('*');
}
document.write('<br>');
}

3)

var n=5;

for(var i=0; i<n; i++){
for(var j=0; j<n-i-1; j++){
document.write('<i style="visibility:hidden;">-</i>');
}
for(var q=0; q<2*i+1; q++){
document.write('*');
}
document.write('<br>');
} for(var i=n-1; i>0; i--){
for(var j=0; j<n-i; j++){
document.write('<i style="visibility:hidden;">-</i>');
}
for(var q=0; q<i*2-1; q++){
document.write('*');
}
document.write('<br>');
}

最新文章

  1. java中的字符串相关知识整理
  2. C语言指针转换为intptr_t类型
  3. Excel函数——DATE、SUBSTITUTE、REPLACE、ISERROR、IFERROR
  4. ios中autolayout
  5. 怎样避免 i f 判断过多,全复杂度较高,代码不美观的问题?
  6. 【Lua】Debian环境下openresty的安装
  7. Python基础:模块
  8. 存储过程Oracle(一)
  9. namenode 和datanode无法启动,错误:FSNamesystem initialization failed. datanode.DataNode: Incompatible namespaceIDs
  10. 关于Asp.Net Forms身份认证
  11. Highcharts中文网
  12. StrokeStart与StrokeEnd动画
  13. 在右键添加Cmder here选项,添加启动Cmder的快捷键
  14. cocos2dx进阶学习之坐标转换
  15. 获取浏览器版本Asp.Net
  16. 配置adb环境变量
  17. An express train to reveries
  18. 1-3 hibernate核心对象关系映射 xxx.hbm.xml
  19. 1-51单片机WIFI学习(开发板介绍)
  20. 基于vue-cli快速构建

热门文章

  1. C#如何把XSD中HexBinary类型序列化uint类型
  2. 为VSFTP用户指定登录后的目录.原创测试通过.
  3. Linux 运维面试问题总结
  4. matlab形态学图像处理之strel函数
  5. Polygon
  6. c# list排序的实现方式
  7. 《SpringBoot揭秘 快速构建微服务体系》读后感(一)
  8. VIM显示utf-8乱码
  9. linux下安装mysql的三种方法:rpm包安装、yum安装、源码包安装
  10. Centos7.2 安装配置 Tengine(nginx)