两个for循环执行顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个for循环执行顺序相关的知识,希望对你有一定的参考价值。

for(j=60j<120;j++)
for(j=59;j>0;j--)
两个是依次执行的吧,我想把第一个循环得的数据运用到第二个中,可以实现吗

两个for循环执行顺序如下:

1、外层判断循环条件,满足进入外层循环体。

2、内层判断循环条件。

3、内层循环体执行。

4、内层循环变量累加,回到2执行,直到不满足内层条件。

5、外层循环变量累加,回到1执行,直到不满足外层循环条件,彻底退出循环。

扩展资料:

语句最简形式为:for( ; ; )

一般形式为:

for(单次表达式;条件表达式;末尾循环体)

中间循环体;

注意事项

1、for循环中的变量可以是一个也可以是多个。

2、for循环中语句可以为语句体, 语句体外加大括号""将参加循环的语句括起来。

3.、for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句,。

参考资料来源:百度百科-for循环

参考技术A

可以实现,修改代码:

for(j=60j<120;j++)

for(;j>0;j--)

for循环一般形式为:

for(单次表达式;条件表达式;末尾循环体)

中间循环体;

其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。

扩展资料:

for循环注意事项

1.for循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费;

2.for循环中语句可以为语句体, 语句体外加大括号""将参加循环的语句括起来。 for循环的三个表达式都是逗号表达式,这样来说,其实每个分号表达式可以由几个逗号表达式构成,中间用",”隔开,最后以“;”结束;

3. for循环中的"单次表达式"、"条件表达式"和"循环体语句"都是选择项, 即可以缺省成只剩下“;”的空语句, ";"不能缺省的原因是编译格式如此,缺省了编译器不认识而会报错。

参考资料:

百度百科-for循环

参考技术B 外面的for循环和单循环一样,外面的for循环一次,里面的for循环跑完
for(int i =; i <2;i++)
for(int j =0;j<3;j++)
//TODO


i=0时,外面的循环1次,然后内部j从0开始,执行3次
然后i++, i=1 ;再次进入内部循环,j还是从0
开始
参考技术C 你想怎么运用? 第一个执行完后j的值会是120, 如果第二个你不进行j=59的赋值, j的值是不会变的, 可以直接使用.本回答被提问者采纳 参考技术D 是依次执行,至于你说的那个数据要看是什么情况,给个例子吧追问

在两个循环前定义一个变量a=0,通过第一个可以使a=1,第二个循环用的a是一吧

为啥for 循环不执行?

#include<stdio.h>
int yesORno(int year)

if(year%4==0&&year%400!=0) return 1;
return 0;

void main ()

int day[2][12]=31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31;
int y1,y2,m1,m2,d1,d2;
int count;
scanf("%d.%d.%d",&y1,&m1,&d1);
scanf("%d.%d.%d",&y2,&m2,&d2);
for(count=0;y1==y2&&m1==m2&&d1==d2;count++)

d1++;
if(d1>day[yesORno(y1)][m1])

d1=1;
m1++;
if(m1>12)

m1=1;
y1++;



printf("%d\n",count);

#include<stdio.h>
int yesORno(int year)

if(year%4==0&&year%100!=0||year%400==0) return 1;
return 0;

void main ()

int day[2][12]=31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31;
int y1,y2,m1,m2,d1,d2;
int count;
scanf("%d.%d.%d",&y1,&m1,&d1);
scanf("%d.%d.%d",&y2,&m2,&d2);
for(count=0;!(y1==y2&&m1==m2&&d1==d2);count++)

d1++;
if(d1>day[yesORno(y1)][m1-1])

d1=1;
m1++;
if(m1>12)

m1=1;
y1++;



printf("%d\n",count);

改3个地方才能正确。
1.day[2][12]=31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31;
要改成day[2][13]=0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31;
2.if(year%4==0&&year%400!=0) return 1;要改为if(year%4==0 && year%100!=0 || year%400==0) return 1;
3.控制表达式y1==y2&&m1==m2&&d1==d2要改为y1!=y2 || m1!=m2 || d1!=d2.
参考技术A int day[2][12]=31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31;

1、赋值错误
int day[2][12]=31,28,31,30,31,30,31,31,30,31,30,31,
31,29,31,30,31,30,31,31,30,31,30,31;
2、循环条件不对
如果d1==d2,y1=y2,m1=m2,经过下面的一轮计算后,d1 和d2不相等了,自然循环不循环了
参考技术B y1==y2&&m1==m2&&d1==d2

这个条件为假时,就不执行了,

以上是关于两个for循环执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

for循环执行顺序?

for循环执行顺序

for循环的执行顺序?

for循环语句执行顺序

为啥这个for循环不执行?

为啥for 循环不执行?