| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6999 人关注过本帖
标题:关于break的用法
只看楼主 加入收藏
zerochrist
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-4-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
关于break的用法
程序代码:
#include<stdio.h>
#include<stdlib.h>

main()
{
      int i,j;
      printf("i","j\n");
      for(i=0;i<2;i++);
      for(j=0;j<3;j++);
      {
                       if(j==2) break;
                       printf("%d","%d\n",i,j);
                       }
                       }


这段想写的是.先定义i,j整数.  先输出 i,j 然后进行运算.输出后应该为
i j
0 0
0 1
1 0
1 1

但是在break问题上卡住了.  小弟刚学.. 单看书对break的用法不太明了.  只知道书上说break是用于循环语句中跳出循环的作用吧.
以上应该是在j=2时跳出输出计算的吧.    但是对于break的格式.. 有用都错. 不知道是什么原因.  
以下是error
 C:\Users\fen\Documents\未命名1.cpp In function `int main()':
11 C:\Users\fen\Documents\未命名1.cpp break statement not within loop or switch

--------------------------------------------------------------
另补一题...  
程序代码:
#include<stdio.h>
main()
{

 int i,sn;

 i=1,sn=0;

 printf("i","j/n");

 do

 i=i++,sn=sn+i;
while (i<=100);

 printf("%d","%d/n","i","sn");

 

 if

 (i=101) break;
}
}

 


error :13 C:\Users\fen\Documents\未命名3.cpp break statement not within loop or switch
13 C:\Users\fen\Documents\未命名3.cpp At global scope:
15 C:\Users\fen\Documents\未命名3.cpp expected declaration before '}' token

我是希望进行1+2+....+100=sn的计算. 但是想要的结果是.
i,sn
1,1
2,3
......
100,5050
这样的结果.  = =    求助

[ 本帖最后由 zerochrist 于 2010-4-17 05:21 编辑 ]
搜索更多相关主题的帖子: 用法 break 
2010-04-17 05:07
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:5 
问题不在break;而是你的循环写得不正确!
第一个程序:第一个printf()语句在i,j没有初值的情况下输出,不应该
            你的循环在i==0,j==2时就跳出了,因此很可能得不到你想要的结果
第二个程序:while();后面的分号(而且后面也没有{ }),将while()结束了,break在循环外面了,出错。肯定得不到结果了。

好好理解程序结构吧!!!

★★★★★为人民服务★★★★★
2010-04-17 07:38
蓝天依笑
Rank: 2
等 级:论坛游民
帖 子:47
专家分:58
注 册:2010-4-16
收藏
得分:0 
#include<stdio.h>
第一个应为:
#include<stdlib.h>
main()
{
      int i,j;
      printf("i,j\n");
      for(i=0;i<2;i++)
        for(j=0;j<3;j++)
         { if(j==2) break;
           printf("%d,%d\n",i,j);
         }
}
2010-04-17 09:40
蓝天依笑
Rank: 2
等 级:论坛游民
帖 子:47
专家分:58
注 册:2010-4-16
收藏
得分:10 
#include<stdio.h>
main()
{ int i=1,sn=0;
  printf("i\n");
  do
   {sn=sn+i;
    i++;
   }while(i<=100);  /这里的i<=100已经控制了程序结束的大小,所以不需要break/
   printf("%d,%d\n",i,sn);
}
还有,你的j 没有用到,不用定义。
也可以写成
#include<stdio.h>
main()
{ int i=1,sn=0;
  printf("i,sn\n");
  while (i<=100)
   {sn=sn+i;
    i++;
   }
  printf("%d,%d\n",i,sn);
}
如果要用break,那么应该把while的范围去掉,如下

#include<stdio.h>
main()
{ int i=1,sn=0;
  printf("i,sn\n");
  while (1)
   {sn=sn+i;
    i++;
    if(i>=101) break;
   }
  printf("%d,%d\n",i,sn);
}
2010-04-17 09:56
xiaoxinwan
Rank: 2
等 级:论坛游民
帖 子:52
专家分:91
注 册:2010-4-6
收藏
得分:0 
for(i=0;i<2;i++);
for语句最后不用写“;”,这样就表示,你什么都不执行,后面接{},把要写的语句放在大括号里面就得了,
2010-04-17 11:12
Beginner2
Rank: 1
等 级:新手上路
帖 子:16
专家分:9
注 册:2009-12-26
收藏
得分:0 
对于第一个,弱弱地问一句:一定要用break;么?不用好像也可以出来这个结果啊!
2010-04-17 11:32
lingyunhappy
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2010-3-8
收藏
得分:5 
楼主似乎想要验证break的用法 这个程序不是很好
另外第二个问题 我认为用for语句会更清楚
2010-04-17 12:12
ubuntulover
Rank: 4
等 级:业余侠客
帖 子:77
专家分:256
注 册:2010-4-9
收藏
得分:0 
for语句后面的分号不正确吧,这样不就循环体为空了吗?
2010-04-17 12:30
songqq520
Rank: 2
等 级:论坛游民
帖 子:18
专家分:31
注 册:2010-4-17
收藏
得分:0 
LZ你错误太多了
2010-04-17 21:44
songqq520
Rank: 2
等 级:论坛游民
帖 子:18
专家分:31
注 册:2010-4-17
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>

main()
{
      int i,j;
      printf("i,j\n");
      for(i=0;i<2;i++)
      for(j=0;j<3;j++)
      {
          if(j==2) break;
          printf("%d,%d\n",i,j);
      }
}
2010-04-17 21:44
快速回复:关于break的用法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.093618 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved