用一个循环语句输出九九乘法表

//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循环的运算顺序不是应该先初始化,然后进行判断,再进入循环语句体,最后在进入自增减么?
展开
 我来答
四舍五不入6
高粉答主

2020-01-31 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71371

向TA提问 私信TA
展开全部

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循环

eawardtan
2010-04-05 · TA获得超过851个赞
知道答主
回答量:267
采纳率:100%
帮助的人:211万
展开全部
//用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.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jy03078584
推荐于2017-09-14 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:270万
展开全部
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被赋值成0了吧,然后那个时候j是=2的。第2次进入循环中,应该进行判断吧?然后再syso吧?最后再自增吧?如果这个理论是对的话,那么syso的结果就应该是0*2了,可是计算机却是1*2这说明计算机先自增了,就这地方不明白
追答
在i被赋值0后 if结束 i是要++的 它不就又变为1了么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楼三龙骊颖
2019-03-04 · TA获得超过3921个赞
知道大有可为答主
回答量:3212
采纳率:32%
帮助的人:226万
展开全部
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乘法表
这样不是简洁明了些吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
quanzbd082
2012-08-05
知道答主
回答量:17
采纳率:0%
帮助的人:5.2万
展开全部
for循环的时候,是先判断条件,符合条件,执行语句,结束之后在循环,知道条件不符合时停止
追问
谢谢你了,我太马虎了,不好意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式