请问这道for循环的题目怎么写?包含break和continue辨析的辨析。
int sum = 0;for ( int i=0; i<10; i++ ) {
if ( i%2 ) continue;
sum += i;
}
printf("%d\n", sum);
int sum = 0;
for ( int i=0; i<10; i++ ) {
if ( i%2 ) break;
sum += i;
}
printf("%d\n", sum);
我有四个问题:
1int i 可以写在括号里面吗?
2i%2电脑会如何处理?if括号里面放的不是一些判断成不成立吗?我很懵。
3为什么第一个答案是20,第二个是0?我一开始准备描述自己思路的,后来想着想着绕进去了。
4为什么在电脑上跑,会报错?
本帖最后由 tommyyu 于 2022-7-30 15:37 编辑
1.int i是可以写在括号里的,但是写在括号里的i只在这个for循环中有用,在其他地方无法被访问(除非再次定义i)
2.在编程中,默认0为false,其他数均为true。因此if(i%2)相当于if(i%2!=0)
3.代码1是如果i除以2的值是1(i是奇数),则开启下一轮循环,否则将sum += i。因此sum就是0~9中的偶数的和(0+2+4+6+8 = 20)
代码2是如果i除以2的值是1(i是技术),则直接退出循环,否则将sum+=i。因此,在i=0时,sum+=0,则sum还是0,然后i++,i的值变为1,是奇数,退出循环,所以sum=0
4.C语言需要main函数以及头文件的引入,代码应该这样写:
#include<stdio.h> //printf需要stdio头文件
int main() //定义main函数
{
int sum = 0;
for(int i=0; i<10; i++) {
if(i%2) break;
sum += i;
}
return 0; //main函数的返回值,在答题中如果不写会被判为0分
} tommyyu 发表于 2022-7-30 15:35
1.int i是可以写在括号里的,但是写在括号里的i只在这个for循环中有用,在其他地方无法被访问(除非再次定 ...
第四条问的太蠢了,我竟然没有注意到 tommyyu 发表于 2022-7-30 15:35
1.int i是可以写在括号里的,但是写在括号里的i只在这个for循环中有用,在其他地方无法被访问(除非再次定 ...
第一题,假设第一轮循环已经结束,i变成了1,第二次进入for循环,i%2的结果为1,continue会直接进入下一个循环,那么i不就不会变成2了吗? 追光THO 发表于 2022-7-30 16:15
第一题,假设第一轮循环已经结束,i变成了1,第二次进入for循环,i%2的结果为1,continue会直接进入下一 ...
i++相当于是放在哪里的?大括号外面还是大括号里面? 本帖最后由 tommyyu 于 2022-7-30 16:32 编辑
追光THO 发表于 2022-7-30 16:15
第一题,假设第一轮循环已经结束,i变成了1,第二次进入for循环,i%2的结果为1,continue会直接进入下一 ...
开启下一轮循环前仍然会执行i++这条语句 本帖最后由 tommyyu 于 2022-7-30 16:27 编辑
追光THO 发表于 2022-7-30 16:17
i++相当于是放在哪里的?大括号外面还是大括号里面?
第一张图片是C语言中for循环运行过程,下面那张是这个程序中for循环的运行过程 tommyyu 发表于 2022-7-30 16:24
第一张图片是C语言中for循环运行过程,下面那张是这个程序中for循环的运行过程
谢谢,我已经懂了 tommyyu 发表于 2022-7-30 16:24
第一张图片是C语言中for循环运行过程,下面那张是这个程序中for循环的运行过程
请问你这样的代码是怎么打的?
我只会复制粘贴,
int sum = 0;
for ( int i=0; i<10; i++ ) {
if ( i%2 ) continue;
sum += i;
}
printf("%d\n", sum);
点击这个"<>" tommyyu 发表于 2022-7-30 16:49
点击这个""
谢谢
页:
[1]