两个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循环
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);
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循环执行顺序的主要内容,如果未能解决你的问题,请参考以下文章