for() 语法问题

LI-O 2014-03-23 10:28:31
#include<stdio.h>
int main(void)
{
int i;
int j;

for(j = 5;(j>0)||(j<10);j++)
{
printf("%d\n",j);
}
return 0;
}

fo()r内无法使用 && || ! ???
求解
...全文
218 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-03-24
  • 打赏
  • 举报
回复
for (A;B;C) D;
//等价于
{
 A;
 while (1) {
  if (!(B)) break;
  D;
  C;
 }
}
lin5161678 2014-03-24
  • 打赏
  • 举报
回复
j > 0 && j < 10 ======================== !(j <= 0 || j >=10)
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 19 楼 yulinlang 的回复:
[quote=引用 4 楼 w15tp 的回复:] [quote=引用 2 楼 yulinlang 的回复:] for()内 当然可以使用 && 和 || 问题是你的条件 j 大于 0 或者 j 小于 10,那么任何一个整数都满足这个条件。 试试 (j>0)&&(j<10)
如果这样呢。 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0;[/quote] 试着单步执行一下程序,看看这样能完成你要求的先递增再递减。 这个不是语法问题,是你的逻辑混乱。 这样不就可以了

#include <stdio.h>
int main(void)
{
    int i;
    int j;

    for(j = 5; j < 10; j++)
    	printf("%d\n",j);
    for(j = 5; j > 0; j--)
        printf("%d\n",j);
    return 0;
}
[/quote] 我想在一个for内完成。
yulinlang 2014-03-24
  • 打赏
  • 举报
回复
引用 4 楼 w15tp 的回复:
[quote=引用 2 楼 yulinlang 的回复:] for()内 当然可以使用 && 和 || 问题是你的条件 j 大于 0 或者 j 小于 10,那么任何一个整数都满足这个条件。 试试 (j>0)&&(j<10)
如果这样呢。 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0;[/quote] 试着单步执行一下程序,看看这样能完成你要求的先递增再递减。 这个不是语法问题,是你的逻辑混乱。 这样不就可以了

#include <stdio.h>
int main(void)
{
    int i;
    int j;

    for(j = 5; j < 10; j++)
    	printf("%d\n",j);
    for(j = 5; j > 0; j--)
        printf("%d\n",j);
    return 0;
}
derekrose 2014-03-24
  • 打赏
  • 举报
回复
挂掉?? debug过了吗?在哪一步挂掉?你说的挂掉是什么意思?
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 16 楼 derekrose 的回复:
[quote=引用 14 楼 w15tp 的回复:] [quote=引用 13 楼 derekrose 的回复:] [quote=引用 10 楼 w15tp 的回复:] [quote=引用 6 楼 derekrose 的回复:] [quote=引用 3 楼 w15tp 的回复:] [quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题[/quote] OTL[/quote] 如果依然找不到原因,上系统版本,编译器版本,编译选项,优化选项[/quote] 好吧,重新跟你说一遍。 同志们,这个 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0; } 这个哪里部队、、不对? 我把后来的 j在第一次循环到最高值 9 的时候再判断,把 j初始化为 5,然后在递减,因为 第一个for里有限制 j>0;所以应该没问题。 好吧,我怀疑我没有彻底搞清楚 for() 的嵌套循环概念。[/quote] if条件下无论里面有多少个语句,请全部使用括号,不然就是让人怀疑的代码。 if(j == 9) j=5; j--; 这样的代码 j--是每次都要执行的[/quote] 我按照你的建议加上了{}/ 结果还是挂掉,我觉得还是再跟你说一下比较好, 将 j 初始化为 5,并在 for() 里面设置一个双重范围,即 j<10 && j >0; 然后我首先将他 递增,当递增到最大值时再 将 j重新初始化为5。 然后递减,递减到最小值。 程序结束。 就是这意思。
derekrose 2014-03-24
  • 打赏
  • 举报
回复
引用 14 楼 w15tp 的回复:
[quote=引用 13 楼 derekrose 的回复:] [quote=引用 10 楼 w15tp 的回复:] [quote=引用 6 楼 derekrose 的回复:] [quote=引用 3 楼 w15tp 的回复:] [quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题[/quote] OTL[/quote] 如果依然找不到原因,上系统版本,编译器版本,编译选项,优化选项[/quote] 好吧,重新跟你说一遍。 同志们,这个 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0; } 这个哪里部队、、不对? 我把后来的 j在第一次循环到最高值 9 的时候再判断,把 j初始化为 5,然后在递减,因为 第一个for里有限制 j>0;所以应该没问题。 好吧,我怀疑我没有彻底搞清楚 for() 的嵌套循环概念。[/quote] if条件下无论里面有多少个语句,请全部使用括号,不然就是让人怀疑的代码。 if(j == 9) j=5; j--; 这样的代码 j--是每次都要执行的
LI-O 2014-03-24
  • 打赏
  • 举报
回复
万恶的伸手,神啊。原谅我吧。
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 13 楼 derekrose 的回复:
[quote=引用 10 楼 w15tp 的回复:] [quote=引用 6 楼 derekrose 的回复:] [quote=引用 3 楼 w15tp 的回复:] [quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题[/quote] OTL[/quote] 如果依然找不到原因,上系统版本,编译器版本,编译选项,优化选项[/quote] 好吧,重新跟你说一遍。 同志们,这个 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0; } 这个哪里部队、、不对? 我把后来的 j在第一次循环到最高值 9 的时候再判断,把 j初始化为 5,然后在递减,因为 第一个for里有限制 j>0;所以应该没问题。 好吧,我怀疑我没有彻底搞清楚 for() 的嵌套循环概念。
derekrose 2014-03-24
  • 打赏
  • 举报
回复
引用 10 楼 w15tp 的回复:
[quote=引用 6 楼 derekrose 的回复:] [quote=引用 3 楼 w15tp 的回复:] [quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题[/quote] OTL[/quote] 如果依然找不到原因,上系统版本,编译器版本,编译选项,优化选项
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 9 楼 lijunbiao2080 的回复:
[quote=引用 8 楼 lijunbiao2080 的回复:] 谁说的不可以用&& ||,我用VC编译的结果,可以的
从语法上分析是可以的,但是你这样就是无穷大了,没有意义了。[/quote] 那算是无限循环,没有意义。~~安慰的不错
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 7 楼 bedynamic 的回复:
[quote=引用 2 楼 yulinlang 的回复:] for()内 当然可以使用 && 和 || 问题是你的条件 j 大于 0 或者 j 小于 10,那么任何一个整数都满足这个条件。 试试 (j>0)&&(j<10)
+1[/quote] #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0;
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 6 楼 derekrose 的回复:
[quote=引用 3 楼 w15tp 的回复:] [quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题[/quote] OTL
lijunbiao2080 2014-03-24
  • 打赏
  • 举报
回复
引用 8 楼 lijunbiao2080 的回复:
谁说的不可以用&& ||,我用VC编译的结果,可以的
从语法上分析是可以的,但是你这样就是无穷大了,没有意义了。
lijunbiao2080 2014-03-24
  • 打赏
  • 举报
回复
谁说的不可以用&& ||,我用VC编译的结果,可以的
bedynamic 2014-03-24
  • 打赏
  • 举报
回复
引用 2 楼 yulinlang 的回复:
for()内 当然可以使用 && 和 || 问题是你的条件 j 大于 0 或者 j 小于 10,那么任何一个整数都满足这个条件。 试试 (j>0)&&(j<10)
+1
derekrose 2014-03-24
  • 打赏
  • 举报
回复
引用 3 楼 w15tp 的回复:
[quote=引用 1 楼 derekrose 的回复:] 至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。[/quote] 编译阶段进行语法分析。如果语法有问题请上compile error,如果是运行时刻有问题,请debug后说出运行到哪一步出现的问题 请清晰描述问题
LI-O 2014-03-24
  • 打赏
  • 举报
回复
我给的那个 || 例子之前有用 && 做过。只是那时候用的是我刚给的那个样子,运行结果挂掉了。
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 2 楼 yulinlang 的回复:
for()内 当然可以使用 && 和 || 问题是你的条件 j 大于 0 或者 j 小于 10,那么任何一个整数都满足这个条件。 试试 (j>0)&&(j<10)
如果这样呢。 #include<stdio.h> int main(void) { int i; int j; for(j = 5;(j>0)&&(j<10);j++) { printf("%d\n",j); if(j == 9) j=5; j--; printf("%d\n",j); break; } return 0;
LI-O 2014-03-24
  • 打赏
  • 举报
回复
引用 1 楼 derekrose 的回复:
至少要把编译错误信息呈上来吧!
你在逗我么,都说了是语法问题。
加载更多回复(6)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧