js循环,js循环嵌套,js do...while循环,js的for循环,js中的break,js中的continue
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
目录:
一、do..while 循环
二、for循环
三、break & continue
有兴趣可以来小五的博客逛逛哦~
一、do..while 循环
语法格式:
do
{
语句;
}while(表达式);
注意:
1.最后的分号不要忘记。
2.循环条件中使用的变量需要经过初始化。
3.循环体中,应有结束循环的条件,否则会造成死循环。
while和do while的区别
do...while和while循环的差别不是很大,主要是就是while循环会先判断初始条件,只有成立才会执行。但是do...while会先执行一次,再进行判断,如果不满足才停下来。
1、执行顺序的问题,while是先判断,do while,先执行循环体的代码,再判断。当条件第一次就不满足时,更能体现出区别。
2、在开发中,while用的情况多。如果while处理逻辑比较别扭时,就需要使用do while。
二、for循环
for循环是用的最多的循环,所以for循环一定要牢记。
for(表达式1;表达式2;表达式3)
{
语句;
}
执行过程:
1.先求解表达式1(只求一次);
2.求解表达式2,若其值为真(非0),
则执行for语句中指定的内嵌语句,
然后求解表达式3;再求解表达式2,若为假,
则结束循环,执行for循环外的语句。
for循环三个表达式的说明:
三个表达式都可以省略,但分号不能省略,省略后都可改写。
3个表达式都省略:例: for(;;);这是个死循环
循环的嵌套
一个循环语句内又包含另一个完整的循环语句。
3中循环可以互相嵌套,下面几种都是合法的形式。
其实循环没有什么好讲的,理清楚思路和逻辑之后,就需要大量的练习来培养这种程序的思维。我知道这很难,当年我坐在网吧通宵敲c的时候也很难,这难道不是我们必须克服的难关吗?
利用循环嵌套:
完成下面的示例
这里我统一使用for循环写,有兴趣的小伙子们可以改成while循环和do...while循环
利用循环嵌套 打印四行 *,每行10个
**********
**********
**********
**********
for(var i = 0;i < 4; i++){
for(var j = 0; j < 10; j++){
document.write("*");
}
document.write("<br />");
}
利用循环嵌套 打印直角三角形
*
**
***
****
*****
******
*******
for(var i = 0; i < 7;i++){
for(var j = 0; j<=i;j++){
document.write("*");
}
document.write("<br />");
}
利用循环嵌套 打印五行小五
外层循环控制 总共打印多少行
内层循环控制 每行打印多少个 (小 / 五)
小小小小小五
小小小小五五
小小小五五五
小小五五五五
小五五五五五
for(var i = 0;i<6;i++){
for(var j = 0; j<6-i;j++){
document.write("小");
}
for(var m = 0; m<=i;m++){
document.write("五");
}
document.write("<br>");
}
利用循环打印等腰三角形
外层循环控制 总共打印多少行
内层循环控制 每行打印多少个 (小 / 五) (这里的小可以换成 )
小小小小小五
小小小小五五五
小小小五五五五五
小小五五五五五五五
小五五五五五五五五五
五五五五五五五五五五五
var n = 6
for (var j=0;j<n;j++) {
for (var i = 0;i < n - j;i++) {
document.write("小");
}
for (var x = 0;x <2*j+1;x++){
document.write("五");
}
document.write("<br>");
}
利用循环打印菱形
外层循环控制 总共打印多少行
内层循环控制 每行打印多少个 (小 / 五) (这里的小可以换成 )
小小小小小五
小小小小五五五
小小小五五五五五
小小五五五五五五五
小五五五五五五五五五
五五五五五五五五五五五
小五五五五五五五五五
小小五五五五五五五
小小小五五五五五
小小小小五五五
小小小小小五
var n = 6;
for (var j=0;j<n;j++) {
for (var i = 0;i < n - j-1;i++) {
document.write("小");
}
for (var x = 0;x <2*j+1;x++){
document.write("五");
}
document.write("<br>");
}
var n = 6-1;
for (var j=n;j>0;j--) {
for (var i = 0;i < n - j+1;i++) {
document.write("小");
}
for (var x = 0;x <2*j-1;x++){
document.write("五");
}
document.write("<br>");
}
利用循环打印空心菱形
外层循环控制 总共打印多少行
内层循环控制 每行打印多少个 (  / 五)
五
五 五
五 五
五 五
五 五
五 五
五 五
五 五
五 五
五 五
五
var n = 6;
for (var j=0;j<n;j++) {
for (var i = 0;i < n - j-1;i++) {
document.write(" ");
}
for (var x = 0;x <2*j+1;x++){
if(x>0 && x<2*j){
document.write(" ");
}else{
document.write("五");
}
}
document.write("<br>");
}
var n = 6-1;
for (var j=n;j>0;j--) {
for (var i = 0;i < n - j+1;i++) {
document.write(" ");
}
for (var x = 0;x <2*j-1;x++){
if(x>0 && x< 2*j-2){
document.write(" ");
}else{
document.write("五");
}
}
document.write("<br>");
}
for循环是我们用的最多的循环,循环没有捷径,只能通过大量的练习来进行学习和理解,学会循环之后,我们已经可以完成很多事情了。
最后:用我们最经典的乘法口诀表来结束我们的循环练习
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>小五技术blog-打印隔行变色的乘法口诀表格</title>
<style>
* {
padding: 0;
margin: 0;
}
table {
width: 1200px;
height: 600px;
border-collapse: collapse;
table-layout: fixed;
}
table,
td {
border: 1px solid #000;
}
td {
text-indent: 10px;
}
</style>
</head>
<body>
</body>
<script>
// 字符串中 双引号不能嵌套双引号 单引号不能嵌套单引号
document.write("<table>")
for (var i = 1; i <= 9; i++) {
// document.write(i + ":");
// 隔行换色
if (i % 2 == 1) {
document.write('<tr style="background: grey">');
} else {
document.write("<tr style='background: pink'>");
}
for (var j = 1; j <= i; j++) {
document.write("<td>");
document.write(j + "x" + i + "=" + i * j + "")
document.write("</td>");
}
document.write("</tr>");
}
document.write("<table>")
</script>
</html>
三、break & continue
break语句的功能:
1、在switch语句中使流程跳出switch结构。
2、在循环语句中使流程跳出当前循环。(一般用在循环嵌套if语句,当满足条件就跳出当前循环)
注意:
如果已执行break语句,就不会执行循环体中位于break后的语句。
在多层循环中,一个break语句只向外跳一层。
continue语句的功能:
只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。
注意:
continue语句只能用在循环里。
对于 while 和 do-while 循环,continue 语句执行之后的动作是条件判断;对于 for 循环,随后的动作是变量更新。
示例:
break;
// 1-100 第一个能整除 2, 3, 4
// break
// 在循环中使用 表示跳出当前循环(当前会立即循环结束)
// 注意
// 1. 写在 break 之后的语句不会在执行
// 2. 在多层循环中 一个break只跳一层
for (var j = 1; j <= 10; j++) {
for (var i = 1; i <= 100; i++) { // i
if (i % 2 == 0 && i % 3 == 0 && i % 4 == 0) {
document.write(i + "<br>");
break;
}
}
}
示例:
continue;
//打印1-100的偶数
for (var i = 1; i <= 100; i++) { // i
if (i % 2 == 1) {
continue;
}
document.write(i + "<br>");
}
使用假设法来判断一个数是不是质数
// 判断一个数是不是质数。(除了1和它本身以外不再有其他的除数整除。)
// 2 3 5 7 11 13 17 23 29 37
// 11 1 - 11 除了 1和11 没有其他数能整除它 => 素数/质数
// 9 1 - 9 1 3 9 除了 1和9 还有其他数能整除它 => 合数
var num = prompt("请输入一个数字");
var flag = true; // 假设 num是一个素数
for (var i = 2; i < num; i++) {
if (num % i == 0) { // 如果num能被 其他数(除了1和它本身以外)整数 肯定是合数 推翻假设
flag = false;
break;
}
}
if (flag == true) {
document.write(num + "是素数/质数;");
} else {
document.write(num + "是合数;");
}