用一个循环语句输出九九乘法表
//7、用一个循环语句输出九九乘法表。//for(inti=1,j=1;j<=9;i++){System.out.printf("%d*%d="+i*j+"",i,j);...
// 7、用一个循环语句输出九九乘法表。//
for (int i = 1, j = 1; j <= 9; i++)
{
System.out.printf("%d*%d=" + i * j + " ", i, j);
if (i == j) {
i = 0;
j++;
System.out.println();
}
}
如题一个循环语句输出九九乘法表中,在i=0后,再次进入循环的时候i不是应该为0么?然后进入判断语句,符合条件,然后syso,不应该输出的是1*2啊?难道先运行的自增?求解释
for循环的运算顺序不是应该先初始化,然后进行判断,再进入循环语句体,最后在进入自增减么? 展开
for (int i = 1, j = 1; j <= 9; i++)
{
System.out.printf("%d*%d=" + i * j + " ", i, j);
if (i == j) {
i = 0;
j++;
System.out.println();
}
}
如题一个循环语句输出九九乘法表中,在i=0后,再次进入循环的时候i不是应该为0么?然后进入判断语句,符合条件,然后syso,不应该输出的是1*2啊?难道先运行的自增?求解释
for循环的运算顺序不是应该先初始化,然后进行判断,再进入循环语句体,最后在进入自增减么? 展开
10个回答
展开全部
for循环的时候,是先判断条件,符合条件,执行语句,结束之后在循环,知道条件不符合时停止,可以参考下面的代码:
program f;
var
a,b,i:integer;
begin
for a=1 to 9 do
{
for b=1 to a do
write(a,‘*’,b,‘=‘,(a*b),' ');
writeln;
}
end.
扩展资料:
for循环语法
1、语句最简形式为:
for( ; ; )
2、一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。
参考资料来源:百度百科-for循环
展开全部
//用while实现:
int i=1;
while(i<=9){//外层控制行
int j=1;
while(j<=i){//控制每列
System.out.print(i+"+"+j+"="+(i*j)+"\t");
j++;
}
i++;
System.out.println();
}
//用do..while实现
int k=1;
do{
int j=1;
do{
j++;
System.out.print(k+"+"+j+"="+(k*j)+"\t");
}while(j<k);
k++;
System.out.println();
}while(k<10);
设a为被乘数,范围为1~9;b为乘数,范围为1~a;乘式为a*b=(a,b的乘积),则
a=1: b=1~a 1*1=1
a=2: b=1~a 2*1=2 2*2=4
a=3: b=1~a 3*1=3 3*2=6 3*3=9
a=4: b=1~a 4*1=4 4*2=8 4*3=13 4*4=16
: :
a=9 b=1~a 9*1=9 9*2=18 … 9*9=81
⑴从上面分解的横行中看到共有9行,这里的“行”数变化与a的变化从1~9相同,可用a控制“行”的循环;
⑵每“行”里面相乘的次数与b的范围相关,由b控制每“行”里面的“内部”循环;
⑶内循环被包含在最里层,执行完每“行”的内部循环,就到下一“行”去执行新“行”里面的循环,每“行”都拥有形式相同的( b=1~a )内循环。
即每到一“行”都要执行该“行”的内循环。这里所指的“行”可以理解成抽象的行,不一定是实际上具体对应的行,可以是一个处理“块”。
Pascal程序:
Program Exam37;
Var a,b: byte;
Begin
for a:=1 to 9 do {外循环 }
begin
for b:=1 to a do {内循环 }
write(a,’* ’,b,’= ’,a*b,’ ’:3);
writeln
end;
Readln
End.
int i=1;
while(i<=9){//外层控制行
int j=1;
while(j<=i){//控制每列
System.out.print(i+"+"+j+"="+(i*j)+"\t");
j++;
}
i++;
System.out.println();
}
//用do..while实现
int k=1;
do{
int j=1;
do{
j++;
System.out.print(k+"+"+j+"="+(k*j)+"\t");
}while(j<k);
k++;
System.out.println();
}while(k<10);
设a为被乘数,范围为1~9;b为乘数,范围为1~a;乘式为a*b=(a,b的乘积),则
a=1: b=1~a 1*1=1
a=2: b=1~a 2*1=2 2*2=4
a=3: b=1~a 3*1=3 3*2=6 3*3=9
a=4: b=1~a 4*1=4 4*2=8 4*3=13 4*4=16
: :
a=9 b=1~a 9*1=9 9*2=18 … 9*9=81
⑴从上面分解的横行中看到共有9行,这里的“行”数变化与a的变化从1~9相同,可用a控制“行”的循环;
⑵每“行”里面相乘的次数与b的范围相关,由b控制每“行”里面的“内部”循环;
⑶内循环被包含在最里层,执行完每“行”的内部循环,就到下一“行”去执行新“行”里面的循环,每“行”都拥有形式相同的( b=1~a )内循环。
即每到一“行”都要执行该“行”的内循环。这里所指的“行”可以理解成抽象的行,不一定是实际上具体对应的行,可以是一个处理“块”。
Pascal程序:
Program Exam37;
Var a,b: byte;
Begin
for a:=1 to 9 do {外循环 }
begin
for b:=1 to a do {内循环 }
write(a,’* ’,b,’= ’,a*b,’ ’:3);
writeln
end;
Readln
End.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
不太懂LZ的意思 如果只为99乘法表 这样不是简洁明了些吗
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
不太懂LZ的意思 如果只为99乘法表 这样不是简洁明了些吗
追问
就想用一个循环做乘法表,我的意思是在上面的循环的第一环中i被赋值成0了吧,然后那个时候j是=2的。第2次进入循环中,应该进行判断吧?然后再syso吧?最后再自增吧?如果这个理论是对的话,那么syso的结果就应该是0*2了,可是计算机却是1*2这说明计算机先自增了,就这地方不明白
追答
在i被赋值0后 if结束 i是要++的 它不就又变为1了么
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int
i=1;i<=9;i++){
for(int
j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
不太懂LZ的意思
如果只为99乘法表
这样不是简洁明了些吗
i=1;i<=9;i++){
for(int
j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
不太懂LZ的意思
如果只为99乘法表
这样不是简洁明了些吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for循环的时候,是先判断条件,符合条件,执行语句,结束之后在循环,知道条件不符合时停止
追问
谢谢你了,我太马虎了,不好意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询