非法的表达式开始_轮回、开始还是结束?
上节课说到,要打印0-9这十个数字,除了一个一个的 document.write 还有什么办法?
下面介绍一个for语法
for (var 变量 = 初始值; 结束判断表达式; 变量递增/递减) { 循环体,用于处理变量;}
我们来实操一下
for (var c=0;c<=9;c=c+1) { document.write(c);}
效果如下:
我们来解释一下:
for (c=0; c<=9; c=c+1) 意思就是
开始循环(让变量c从0开始; 一直到c<=9截止; 每循环一次c就加1)
电脑看到 for 就知道接下来是一个循环语句
然后 c=0 ,就是定义一个变量c,其初始值是0
然后判断一下 c 是否 小于等于 9,如果是,就进入循环体,执行相关操作,否则就退出循环,这里 0<=9,所以需要进去执行 document.write(0)
接下来碰到 } 符号表示一轮循环结果,就执行 c= c+1,这个表达式,如果你用数学的思路看,是肯定有问题的, c 怎么可能等于 c + 1 呢?不过你别忘了,这不是数学,符号(=),它的意思也不是“等于”,而是“赋值”,赋值符号左边是变量,右边是值还记得不? 变量 = 值;
那么 c = c + 1 是啥意思呢? 就是把变量 c 中的值拿出来,加个1,再塞回去 c 里面。
我们可以拿现实生活就举例,就相当于,你在一张纸上写了一横,把它扔到了一号宝箱,这个时候宝箱里的是不是一横?然后你把纸从宝箱拿出来,又画了一横,再扔回去宝箱里头,它是不是变成两横了?
所以在这个程序里,第一次循环执行完后, c = c + 1 相当于 c = 0 + 1 ,所以 c = 1 了,它再去和 c<=9 比较,发现 1 <= 9 仍然满足条件,再进去循环体执行
document.write(1)。
整个执行过程,我们一写一下:
//循环开始var c = 0 ;if (c <= 9) { document.write(c); //这个时候相当于document.write(0) } else {}//第一轮循环结束c = c + 1 ; // c = 0 + 1 => c = 1if (c <= 9) {}//c:
至此整个 for 循环结束。
之前讲 if 的时候就应该提到的一个数据类型,现在也应该讲一下了。
就是那个“条件判断表达式”,它的结果是啥呢?是一个布尔(bool)类型,它只有两个值(true, false)
八卦里你可以用(阴、阳)来表达,成语你可以用“非此即彼”来表示,如果要好理解,你可以“对、错”来理解,主要就是用于“判断类表达式”,大家可以执行下面代码加深理解:
document.write((2>1)); //对:truedocument.write(""); //换行document.write((1>2)); //错:falsedocument.write(""); //换行document.write((2==2)); //对:truedocument.write(""); //换行document.write((3>=2)); //对:truedocument.write(""); //换行document.write((3<=2)); //错:falsedocument.write(""); //换行document.write((0==3)); //错:false
结果如下:
另外 bool 类型,还有几个专用的操作符: &&(并且/and), ||(或者/or), !(非/not),^(异或/xor)
咱们用到再说。
还有就是上头的 c = c + 1,写起来有点烦,程序员的时间很宝贵,懒是宇宙第一生产力,所以发明者说:要不咱们把 c = c + 1 写成 c++ 吧?就这么愉快的决定了。
所以 c++ 只能表达 c= c+1 哈,如果你想一次性+2,那你只能 c= c+2 了,不能写成 “c++++” 的哈, c 每次加1 还有种写法是“++c”两者有啥区别呢,我们可以写几个代码试一下
var x = 1;x++; //x = x + 1; x = 1 + 1; x = 2document.write(x); //document.write(2)document.write(""); //换行++x; //x = x + 1; x = 2 + 1; x = 3document.write(x); //document.write(3)document.write(""); //换行document.write(x++); //相当于 x = x + 1; document.write(x); //执行完这句话后 x = 2,屏幕也显示2document.write(""); //换行 document.write(++x); //相当于 x = x + 1; document.write(x); //因为前一次 x++的操作 x变成2了,所以这个时候就 //相当于 x = 2 + 1 = 3; document.write(3);//从上面的代码来看, x++ 和 ++x 是一样的效果//下面来说它俩的区别了
咱们复制到浏览器,看看效果。
所以刚才的 for 循环,我们可以简写为:
for (var c=0;c<=9; c++) { document.write(c);}
另外 for 循环并没有规定说,每次只能加1哈,比如说,我要打印9以内的双数应该怎么做呢?
for (var c=0;c<=9; c=c+2) { document.write(c);}
这样子就能打印出来:0,2,4,6,8(全是双数)了
除了 for 循环,我们还有for in, while 和 do while 循环
for in 一般用于数组或对象:
变量是一个一个的,数组(也是变量,只不过比较特殊)就是一批一批
定义变量的语法是: 变量 = 值;
而定义数组的语法是: 变量 = [ 值1, 值2, 值3, 值4, ……]; 你想放多少放多少
//打印 0,1,2,3,4,5,6,7,8,9for (var c=0;c<10;c++) { document.write(c);}//点名var persons = ["张三","李四","王麻子"];for (var name inpersons ) { document.write(name); document.write("");}
for in 结果如下:
while 和 do while 用于不知道要循环多少次
while 是先判断,再执行,循环次数最少为 0 次
而 do while 是先执行再判断,循环次数最少为 1 次
//打招呼程序,接受用户输入姓名,并打印出 某某你好//如果用户输入的是 exit ,就退出循环while (text!="exit") {var text = prompt("请输入您的姓名"); document.write(text); document.write("你好") document.write(""); //换行 text = prompt("请输入您的姓名");}//如果一开始
结果如下:
//较验用户输入姓名,如果用户输入为空//就一直让他输入,直到不为空为止var text = "";do { text = prompt("请输入姓名:");} while(text==null || text == "") //用户没有输入内容,却点了“确定”,text=""//用户点了"取消", text=null alert(text + "你好"); //alert函数可以弹出一个对话框
今天就到这儿吧,最后送上九九乘法表的程序(直接输代码,好像会丢,可能有非法字符?),大家手打一遍印象更深。
结果如下:
非法的表达式开始_轮回、开始还是结束?相关推荐
- 错误: 非法的表达式开始_虽然这两个C语言宏定义很简单,但是能在程序运行前找到错误代码...
今天翻看 Linux 内核源代码时,发现两行非常有意思的C语言代码,如下: #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))# ...
- IDEA碰到 非法的表达式开始 解决办法
IDEA 编译的时候碰到如下 : 1. 非法的表达式开始 2.需要 ')' 3.未结束的字符串字面值 4.不是语句 5."else" 不带有 "if" 6.需要 ...
- 下列表达式在python中是非法的_在Python语言中,以下非法的表达式是( )
[单选题]6.9 下列各式避雷器放电电压的说法错误的是( ) [单选题]下列哪种数据类型是整型() [判断题]修剪的快捷命令键是rt [单选题]已知x,y=" ",-1:则 ...
- java:错误: 非法的表达式开始
我写了这样一个代码. class Person{private String name;private int age;Person(){System.out.println("C:name ...
- JAVA中的非法输入如何处理,非法的表达式开始解决办法
非法的表达式开始 用toString方法输出字符串,然后用CountChar计算字符串中某字符的个数,谢了如下程序,编译结果如图,大家帮忙看看哪里有错,需要改进的. import java.util. ...
- java中非法的表达式开始什么意思,Java非法表达式开始,到底哪里错了?
超级小白一个,请问怎么解决,顺便想知道那些错误会导致非法表达式开始 代码如下 import java.util.Scanner; class Information{//定义一个账号类型 String ...
- c++ 判断数学表达式有效性_高考数学大题如何quot;保分quot;?学霸教你六大绝招!...
高中里有句话,得数学者得高考,此言不虚,清北学生难见数学不足140的,反之,数学140多分的除非特别偏科,大学一般不会差.那么我们怎么"得数学"呢? 针对目前高三的学生:如果你的数 ...
- switch中case后可以是表达式吗_自学C++基础教程【流程控制语句】(switch语句 )...
switch语句:又被称之为 分支选择语句,它提供了一种更方便的方法来实现深层嵌套的if.else逻辑: switch语句先计算表达式的值,并逐个与其后的常量表达式的值相比较,当表达式的值与某个常量表 ...
- lambda表达式语法_使用类似Lambda的语法作为Java中的表达式进行切换
lambda表达式语法 从Java 14开始, switch表达式具有其他Lambda式 ( case ... -> labels )语法,它不仅可以用作语句,还可以用作计算为单个值的表达式. ...
最新文章
- QIIME 2用户文档. 1简介和安装(2018.11)
- Codeforces 955C Sad powers(数论)
- python Modbus基础
- SAP 电商云 Spartacus UI 页面的 page guard 是从什么地方解析的
- 多线程中ThreadLocal的使用
- 消除拖延的方法_如何消灭拖延症,并彻底消除想法
- 选择嵌套_还不会if函数的嵌套判断,学会这方法,就跟复制粘贴一样简单
- 数据结构学习笔记:变位词侦测案例
- (转)iOS及Mac开源项目和学习资料【超级全面】
- 万兴pdf编辑解压后打不开_为什么有的PDF文档无法编辑?
- Navicat Premium 15 注册出现 No All Pattern Found! File Already Patched?
- 目标检测之单阶段和两阶段检测算法的对比
- 传奇地图时间限制脚本_地图时间限制脚本
- 服务器限制网页只能跳转过来,限制网页只能在微信打开
- SkyForm CMP同Mirantis OpenStack兼容测试
- 博客之星2018 ,请为我投上您宝贵的一票!
- 2020寒假【gmoj2417】【Loan Repayment】【二分】
- 快速学习Java8新特性第七讲——Optional类
- 4.11 Lewis Carroll等式
- hphmon05.exe
热门文章
- java什么内部类_Java的内部类学习
- kl散度度量分布_强化学习新思潮1:值分布强化学习(04)
- 79. 单词搜索(dfs)
- if转java_java 使用if将String内字符转换 递归
- pcs7更改项目计算机名时出错,PCS7 C/S报警问题-工业支持中心-西门子中国
- java判断实例_java判断类和实例的关系
- 网络matlab程序_【Matlab】官网资源盘点
- 计算机辅助初中数学教学,初中数学合作教学如何融入计算机辅助教学
- java pdf表单域实现_Java 创建PDF表单域 - 文本框、复选框、列表框、组合框、按钮等...
- Codeforce-CodeCraft-20 (Div. 2)-B. String Modification (找规律+模拟)