(i=1i<10i++)
/*第一行*/
for
(j=1j<10j++)
/*第二行*/
if
(j==9)
printf("%4d\n",i*j)/*第三行*/
else
printf("%4d",i*j)
/*第四行*/
i从1--9变化,当i等于每个数字时,j都从1--9执行了一遍,j=1--8时,直接打印并不换行
printf("%4d",i*j)
,但j=9时打印换行.
这几句的作用就是打印出
九九乘法表
.
for
(i=1i<10i++)
/*第一行*/
for
(j=1j<10j++)
/*第二行*/
if
(j==9)
printf("%4d\n",i*j)/*第三行*/
else
printf("%4d",i*j)
/*第四行*/
i从1--9变化,当i等于每个数字时,j都从1--9执行了一遍,j=1--8时,直接打印并不换行
printf("%4d",i*j)
,但j=9时打印换行.
这几句的作用就是打印出九九乘法表.
<!DOCTYPE html><html>
<head>
<title>乘法表</title>
<meta charset="UTF-8"/>
<style>
table{
border-collapse:collapse
}
td{
text-align:center
border:1px solid green
padding:2px 8px
}
</style>
<script>
function mulTable(){
var text=document.getElementById("text")
var n=parseInt(text.value)
if(isNaN(n)){
alert("请输入0-9的数字")
return
}
if(n<1||n>9){
alert("请输入0-9")
return
}
var table=document.getElementById("table")
table.innerHTML=""
var i,j,tr,td
for(i=1i<=ni++){
tr=document.createElement("tr")
table.appendChild(tr)
for(j=1j<=nj++){
td=document.createElement("td")
tr.appendChild(td)
td.innerHTML=j+"*"+i+"="+(i*j)
if(i==j){
break
}
}
}
}
</script>
</head>
<body>
<label>请输入阶数</label>
<input id="text" type="text">
<button type="button" onclick="mulTable()">打印乘法表</button>
<table id="table"></table>
</body>
</html>
for(var i = 1i <= 9i++){ //外层循环for(var j = 1j <= ij++){ //内层循环
document.write(j+"*"+i+"="+i*j+" ")//输出结果
if((i*j)<10){
document.write(" ")//输出两个空格(为了看上去整齐一点)
}
}
document.write("</br>")//输出一个换行符
}
循环流程是这样的:
第一次外循环,当i=1的时候,进入内循环,这时候j=1,所以在页面上输出1(j)*1(i)=1(i乘以j的积数)。注意,这里一定要内循环不满足条件才会进入第二次外循环,所以第二次内循环的时候j=2了(因为j++),那么它满足中间的条件j<=i吗?也就是现在的j(2)<=i(1)吗?显然条件不符合了,所以它退出内循环,执行内循环后面一句输出一个换行符,然后回到第二次外循环。
第二次外循环的时候,i=2(因为i++),进入内循环,因为是新一轮内循环,所以一开始还是j=1,输出结果为1*2=2,然后还是在内循环,这时候j=2,那么j(2)<=i(2)吗?是的。所以输出2*2=4,然后第三次内循环j=3,那么j(3)<=i(2)吗?否。所以退出内循环,执行下面输出一个换行符,进入第三层外循环。
以此类推,一直到外循环的i=10,不满足i <= 9的条件,它就不会进入内循环了,也不会执行任何操作了,所以也不会输出什么10*1这种表达式。