JavaScript语句和异常

知识内容:css

1.条件语句(分支语句)html

2.循环语句python

3.with语句算法

4.异常处理express

5.本节练习数组

 

参考资料:《JavaScript高级程序设计》服务器

 

 

 

1.条件语句app

JavaScript中的条件语句相似C、C++:测试

(1)if语句网站

1 if(条件){
2 
3 }else if(条件){ 4 5 }else{ 6 7 }

注:

  • == 值相等
  • === 值和类型都相等
  • && and
  • || or

 

(2)switch语句

 1 switch (experssion){
 2 case value: statement 3 break; 4 case value: statement 5 break; 6 case value: statement 7 break; 8 case value: statement 9 break; 10 default: statement 11 }

例如:

 1 switch (value) {
 2 case 1: 3 alert('第一'); 4 break; 5 case 2: 6 alert('第二'); 7 break; 8 case 3: 9 alert('第三'); 10 break; 11 default: 12 alert(666); 13 break; 14 }

 

 

2.循环语句

(1)do-while语句

1 do {
2  statement 3 } while (experssion);

例如:

1 var i = 0;
2 do { 3 i += 2; 4 } while (i < 10); 5 6 alert(i); // 10

注:do-while循环是后测试循环语句最经常使用于循环体中的代码至少要被执行一次的状况

 

(2)while语句

1 while(expression)
2 { 3  statement 4 }

例如:

1 var i = 0;
2 while(i < 10) 3 { 4 i += 2; 5 } 6 7 alert(i); // 10

 

(3)for语句

for语句有两种格式,一种相似C语言的写法,一种相似python的写法

相似python的格式:循环时,循环的元素是索引

 1 # 循环遍历数组
 2 a = [11,22,33,44] 3 for(var item in a){ 4   console.log(item); // 0 1 2 3 5 } 6 7 # 循环遍历列表 8 a = {'k1':'v1','k2':'v2'} 9 for(var item in a){ 10   console.log(item); // k1 k2 11 }

相似C语言的写法:

1 # 遍历输出数组的值
2 a = [11,22,33,44] 3 for(var i=0;i<a.length;i=i+1){ 4   console.log(a[i]); // 11 22 33 44 5 }

注:这种方法不支持字典的循环

 

(4)label和break和continue

label语句:在代码中添加标签,使用方法是label:statement

break:当即退出循环

continue:当即退出循环可是退出循环后会从循环的开始部分继续执行

实例:

 1 var num = 0;
 2 for (var i=1; i<10; i++) 3 { 4 if (i%5 == 0){ 5 break; 6  } 7 num++; 8 } 9 10 alert(num); // 4
 1 var num = 0;
 2 for (var i=1; i<10; i++) 3 { 4 if (i%5 == 0){ 5 continue; 6  } 7 num++; 8 } 9 10 alert(num); // 8

break、continue和label语句结合使用返回代码中指定的位置:

 1 var num = 0;
 2 
 3 outermost: 4 for (var i=0; i<10; i++){ 5 for(var j=0; j<10; j++){ 6 if (i == 5 && j == 5){ 7 break outermost; 8  } 9 num++; 10  } 11 } 12 13 alert(num); // 55
 1 var num = 0;
 2 
 3 outermost: 4 for (var i=0; i<10; i++){ 5 for(var j=0; j<10; j++){ 6 if (i == 5 && j == 5){ 7 continue outermost; 8  } 9 num++; 10  } 11 } 12 13 alert(num); // 95

 

 

3.with语句

with语句的做用是将代码的做用域设置到一个特定的对象中,with语句语法:with (expression) statement;

定义with语句的目的主要是为了简化屡次编写同一个对象的工做,以下所示:

1 var qs = location.search.substring(1);
2 var hostName = location.hostname; 3 var url = location.href;

上述代码使用with语句以后能够这样写:

1 with(location){
2     var qs = search.substring(1); 3 var hostName = hostname; 4 var url = href; 5 }

 

 

4.异常处理

关于JavaScript异常处理详细信息:https://blog.csdn.net/u012468376/article/details/57411822?utm_source=itdadao&utm_medium=referral

 1 try {
 2     //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
 3 } 4 catch (e) { 5 // 若是try代码块中抛出了异常,catch代码块中的代码就会被执行。 6 //e是一个局部变量,用来指向Error对象或者其余抛出的对象 7 } 8 finally { 9 //不管try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。 10 }

 

 

js代码:

  1 // 封装console.log 封装输出
  2     log = function() {
  3         console.log.apply(console, arguments)
  4     };
  5 
  6     // 分支结构(if和switch):
  7     /*
  8         if-else:
  9             if(条件){
 10 
 11             }else if(条件){
 12 
 13             }else{
 14 
 15             }
 16     */
 17     // ———选择控制———
 18     //
 19     // if 能够根据状况选择性执行某些语句
 20     // 例如
 21     //
 22     // 定义一个变量 grade 表明年级
 23 
 24     grade = 3;
 25     // 若是 grade 小于 7
 26     if(grade < 7) {
 27         // 这句 log 只在 grade 小于 7 这个条件知足的状况下会被执行
 28         log('小学生')
 29     }
 30 
 31     // 选择控制有多种不一样的用法
 32     // 只有if
 33     if(1 > 2) {
 34         log('条件成立')  // 语句不执行
 35     }
 36 
 37     // if 带 else
 38     // if else 一定会执行一个语句
 39     if(1 > 2) {
 40         log('条件成立')
 41     } else {
 42         log('条件不成立')  // 执行这条语句
 43     }
 44 
 45     // 多个 if else
 46     grade = 8;
 47     if(grade < 7) {
 48         log('小学生')
 49     } else if(grade < 10) {
 50         log('初中生')
 51     } else {
 52         log("高中生")
 53     }
 54     // 输出: 初中生
 55 
 56     // 例子
 57     // 求绝对值
 58     n = -1;
 59     if(n < 0) {
 60         n = -n;
 61     }
 62     log(n);
 63 
 64     // 判断奇偶
 65     n = 1;
 66     if(n % 2 === 0) {
 67         log('偶数');
 68     } else {
 69         log('奇数');
 70     }
 71 
 72 
 73     // ——比较运算和逻辑操做——
 74     //
 75     // if 判断的条件实际上是一个值, 这种值叫 布尔值 (bool, Boolean)
 76     // 这种值只有两种结果, 一个是 真, 一个是 假
 77     // 在 JavaScript 中, 这两种值分别是 true 和 false
 78     //
 79     // 1 > 2 其实是一个值, false
 80     // if 是根据这个值来决定执行的语句的
 81     //
 82     // 一共有 7 种比较运算
 83     // 下面分别是
 84     // 严格相等, 严格不相等, 相等、不等、小于、大于、小于等于、大于等于
 85     // ===
 86     // !==
 87     // ==
 88     // !=
 89     // <
 90     // >
 91     // <=
 92     // >=
 93 
 94     // 例子
 95     // 1 === '1'
 96     // 1 == 1
 97     // 1 == 2
 98     // 1 != 1
 99     // 1 != 2
100     // 1 < 2
101     // 1 > 2
102     // 1 <= 1
103     // 1 >= 1
104 
105     // 除了比较运算, 还有三种逻辑操做
106     // 三种逻辑操做分别是 与、或、非
107     // 在 JavaScript 中 分别以下
108     // &&
109     // ||
110     // !
111     //
112     // 用到的地方很广, 好比你登陆网站的时候, 服务器要作以下判断
113     // if(用户名存在 && 密码验证成功) {
114     //     登陆成功
115     // } else {
116     //     登陆失败
117     // }
118 
119     // 注意
120     // 比较运算和逻辑操做的结果都是 bool(布尔类型),结果是 true 和 false
121 
122     // 例子
123     // 1 == 1 && 2 == 2   // true
124     // 1 == 1 && 1 == 2   // false
125     // 1 == 1 || 1 == 2   // true
126     // ! (1 == 1)
127 
128     // 能够加括号来让代码直观一点
129     // ((1 == 1) && (2 == 2)) || (1 == 2)
130 
131 
132     /*
133         switch:
134             switch (experssion){
135                 case value: statement
136                                  break;
137                 case value: statement
138                                  break;
139                 case value: statement
140                                  break;
141                 case value: statement
142                                  break;
143                 default: statement
144             }
145     */
146     value = 1;
147     switch (value) {
148         case 1:
149              log('第一');
150              break;
151         case 2:
152              log('第二');
153              break;
154         case 3:
155              log('第三');
156              break;
157         default:
158              log(666);
159              break;
160     }
161 
162 
163     // 循环结构(do-while、while、for)
164     // do-while:
165     var i = 0;
166     do {
167         i += 2;
168         log(i);
169     }while (i < 10);
170 
171     // while:
172     var i = 0;
173     while(i < 10){
174         i += 2;
175         log(i);
176     }
177 
178     // for:
179     // for语句有两种格式,一种相似C语言的写法,一种相似python的写法
180     // 相似python的格式:循环时,循环的元素是索引
181     // 循环遍历数组
182     a = [11,22,33,44];
183     for(item in a){
184         log(item);  // 0 1 2 3
185         log(a[item]);  // 11 22 33 44
186     }
187 
188     // 循环遍历字典
189     a = {'k1':'v1','k2':'v2'};
190     for(s in a){
191         log(s);  // k1 k2
192         log(a[s]);  // v1 v2
193     }
194 
195 
196     // break continue label示例:
197     var num = 0;
198     for (var i=1; i<10; i++)
199     {
200         if (i%5 == 0){
201             break;
202         }
203         num++;
204     }
205     log(num);  // 4
206 
207     var num = 0;
208     for (var i=1; i<10; i++)
209     {
210         if (i%5 == 0){
211             continue;
212         }
213         num++;
214     }
215     log(num);  // 8
216 
217     // break、continue和label语句结合使用返回代码中指定的位置:
218     var num = 0;
219     outermost:
220         for (var i=0; i<10; i++){
221             for(var j=0; j<10; j++){
222                 if (i == 5 && j == 5){
223                     break outermost;
224                 }
225                 num++;
226             }
227         }
228     log(num);  // 55
229 
230     var num = 0;
231     outermost:
232         for (var i=0; i<10; i++){
233             for(var j=0; j<10; j++){
234                 if (i == 5 && j == 5){
235                     continue outermost;
236                 }
237                 num++;
238             }
239         }
240     log(num);  // 95
241 
242 
243     // JavaScript异常处理结构:
244     /*
245         try {
246             //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
247         }
248         catch (e) {
249             // 若是try代码块中抛出了异常,catch代码块中的代码就会被执行。
250             //e是一个局部变量,用来指向Error对象或者其余抛出的对象
251         }
252         finally {
253              //不管try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
254         }
255     */

 

 

5.本节练习:

1.循环输出1到100,循环输出100到0,循环输出1到100之间的奇数,输出1到100的和(5050)

2.求1到100之间奇数的和,求1到100之间偶数的和

3.循环打印输出九九乘法表

4.循环打印倒序输出九九乘法表

4.解决百钱白鸡问题:

公鸡5元每只,母鸡3元每只,小鸡3只1元,100元能够买多少只鸡?

 

代码以下:

  1 <!-- author: wyb -->
  2 <!DOCTYPE html>
  3 <html lang="en">
  4 <head>
  5     <meta charset="UTF-8">
  6     <link rel="stylesheet" href="../source/css/common.css">
  7     <title>JavaScript循环分支语句练习</title>
  8     <style>
  9         table {
 10             border: 1px solid red;
 11             background: #ccffff;
 12         }
 13     </style>
 14 </head>
 15 <body>
 16 
 17 <div class="container">
 18     <h1>JavaScript循环分支语句练习</h1>
 19 
 20     <h3>题目以下:</h3>
 21     <ol>
 22         <li>
 23             循环输出1到100,循环输出100到0,输出1到100的和(5050)
 24         </li>
 25         <li>
 26             循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和
 27         </li>
 28         <li>
 29             循环打印输出九九乘法表
 30         </li>
 31         <li>
 32             循环打印倒序输出九九乘法表
 33         </li>
 34         <li>
 35             解决百钱白鸡问题:
 36 
 37             公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买?
 38         </li>
 39     </ol>
 40     <h3>详细解题思路请看代码中的js代码</h3>
 41 
 42 
 43     <h3>第一题:</h3>
 44     <h4>循环输出1到100,循环输出100到0,输出1到100的和(5050)</h4>
 45     <div id="p1">
 46 
 47     </div>
 48 
 49 
 50     <h3>第二题:</h3>
 51     <h4>循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和</h4>
 52     <div id="p2">
 53 
 54     </div>
 55 
 56 
 57     <h3>第三题:</h3>
 58     <h4>循环打印输出九九乘法表</h4>
 59     <div id="p3">
 60 
 61     </div>
 62 
 63 
 64     <h3>第四题:</h3>
 65     <h4>循环打印倒序输出九九乘法表</h4>
 66     <div id="p4">
 67 
 68     </div>
 69 
 70 
 71     <h3>第五题:</h3>
 72     <h4>
 73         百钱白鸡问题:
 74         公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买?
 75     </h4>
 76     <div id="p5">
 77 
 78     </div>
 79 
 80 </div>
 81 
 82 
 83 <script>
 84     // JavaScript字符串格式化
 85     String.prototype.format = function (args) {
 86         var result = this;
 87         if (arguments.length > 0) {
 88             if (arguments.length == 1 && typeof (args) == "object") {
 89                 for (var key in args) {
 90                     if (args[key] != undefined) {
 91                         var reg = new RegExp("({" + key + "})", "g");
 92                         result = result.replace(reg, args[key]);
 93                     }
 94                 }
 95             }
 96             else {
 97                 for (var i = 0; i < arguments.length; i++) {
 98                     if (arguments[i] != undefined) {
 99                         var reg = new RegExp("({)" + i + "(})", "g");
100                         result = result.replace(reg, arguments[i]);
101                     }
102                 }
103             }
104         }
105         return result;
106     };
107 
108 
109     // 第一题: 循环输出1到100,循环输出100到0,输出1到100的和(5050)
110     // 循环输出1到100
111     var item = document.getElementById("p1");       // 得到第一题的div,后面同理,都是得到题目对应的div对象
112     for (var i = 1; i <= 100; i += 1) {
113         item.innerHTML += '<span>{0}</span>&nbsp;&nbsp;'.format(i.toString());
114         if (i % 40 === 0) {
115             item.innerHTML += '<br>';
116         }
117     }
118     item.innerHTML += '<hr>';
119 
120     // 循环输出100到0
121     for (var i = 100; i >= 0; i -= 1) {
122         item.innerHTML += '<span>{0}</span>&nbsp;&nbsp;'.format(i.toString());
123         if (i % 40 === 0) {
124             item.innerHTML += '<br>';
125         }
126     }
127     item.innerHTML += '<hr>';
128 
129     // 输出1到100的和(5050)
130     var sum = 0;
131     for (var i = 1; i <= 100; i += 1) {
132         sum += i;
133     }
134     item.innerHTML += '<span>{0}</span><br><hr>'.format(sum.toString());
135 
136 
137     // 第二题: 循环输出1到100之间的奇数,并求1到100之间奇数的和,求1到100之间偶数的和
138     // 循环输出1到100之间的奇数
139     var item = document.getElementById("p2");
140     for (var i = 1; i <= 100; i += 1) {
141         if (i % 2 !== 0) {
142             item.innerHTML += '<span>{0}</span>&nbsp;&nbsp;'.format(i.toString());
143         }
144         if (i % 69 === 0) {
145             item.innerHTML += '<br>';
146         }
147     }
148     item.innerHTML += '<hr>';
149 
150     // 求1到100之间奇数的和
151     var sum = 0;
152     for (var i = 1; i <= 100; i += 2) {
153         sum += i;
154     }
155     item.innerHTML += '1到100之间奇数的和: <span>{0}</span><br><hr>'.format(sum.toString());
156     // 求1到100之间偶数的和
157     var sum = 0;
158     for (var i = 0; i <= 100; i += 2) {
159         sum += i;
160     }
161     item.innerHTML += '1到100之间偶数的和: <span>{0}</span><br><hr>'.format(sum.toString());
162 
163 
164     // 第三题: 循环打印输出九九乘法表
165     var item = document.getElementById("p3");
166     item.innerHTML += '<table border="1"></table>';
167     var item = item.getElementsByTagName('table')[0];
168     for (var i = 1; i <= 9; i += 1) {
169         item.innerHTML += '<tr></tr>';
170         var s = item.getElementsByTagName('tr')[i - 1];
171         for (var j = 1; j <= i; j += 1) {
172             s.innerHTML += '<td>{0}*{1}={2}</td>'.format(i.toString(), j.toString(), (i * j).toString());
173         }
174     }
175 
176     // 第四题: 循环打印倒序输出九九乘法表
177     var item = document.getElementById("p4");
178     item.innerHTML += '<table border="1"></table>';
179     var item = item.getElementsByTagName('table')[0];
180     for (var i = 9; i >= 1; i -= 1) {
181         item.innerHTML += '<tr></tr>';
182         var s = item.getElementsByTagName('tr')[9 - i];
183         for (var j = 1; j <= i; j += 1) {
184             s.innerHTML += '<td>{0}*{1}={2}</td>'.format(i.toString(), j.toString(), (i * j).toString());
185         }
186     }
187 
188     // 第五题: 百钱白鸡问题: 公鸡5元每只,母鸡3元每只,小鸡3只1元,100元要买100只鸡怎么买?
189     var item = document.getElementById("p5");
190     for (var i = 0; i <= 20; i++){
191         for (var j = 0; j <= 33; j++){
192             for (var k = 0; k <= 100; k++){
193                 if((i+j+k===100) && (i*5+j*3+k/3===100)){
194                     item.innerHTML += '<span>公鸡{0}只,母鸡{1}只,小鸡{2}只</span><br>'.format(i.toString(), j.toString(), k.toString());
195                 }
196             }
197         }
198     }
199     item.innerHTML += '<hr>';
200     // 下面这种算法也能够
201     for (var i = 0; i <= 20; i++){
202         for (var j = 0; j <= 33; j++){
203             var k = 100 - i - j;
204             if((i+j+k===100) && (i*5+j*3+k/3===100)){
205                 item.innerHTML += '<span>公鸡{0}只,母鸡{1}只,小鸡{2}只</span><br>'.format(i.toString(), j.toString(), k.toString());
206             }
207         }
208     }
209 
210 </script>
211 
212 </body>
213 </html>
相关文章
相关标签/搜索