如何在c语言中跳出for循环

如题,现在用数组接收一串数,我用的是for循环,比如说要求是当输入-1的时候意味着输入结束,并且-1不会再被接受,想编的是一个这样的语句:for(i=0;i<20;i++... 如题,现在用数组接收一串数,我用的是for循环,比如说要求是当输入-1的时候意味着输入结束,并且-1不会再被接受,想编的是一个这样的语句:
for(i=0;i<20;i++)
{scanf("%d",&num[i]);
while(num[i]==-1)
break;}
如上就是我的设想,用一个break语句跳出来,这是随手编的,严谨性就不要吐槽了,只是想知道如何在for语句中跳出来,并且就算for的条件没满足,求指教,谢谢。
展开
 我来答
魔方格的故事
推荐于2019-11-09 · TA获得超过6797个赞
知道答主
回答量:142
采纳率:100%
帮助的人:4.9万
展开全部

在C语言中可以使用break,和return语句结束循环

代码示例 break

int i;for(i=0; i<10; i++){    if(i>3)    // 如果i>3,跳出for循环,执行printf语句        break;  }printf("%d", i);

i>3的时候结束循环;

用return语句(一般用在函数体中,作为函数的返回值跳出该函数,也即跳出了函数体中的for循环)

int fun(int a){    int i;    for(i=0; i<a; i++)    {        if(i>3)    // 如果i>3,则函数执行完毕,并返回变量i的值,也即跳出了for循环            return i;      }}

  拓展资料

C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。

C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言[2]。目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持匹配ANSI C的语法。

C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。

1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。

天云小店
推荐于2017-09-29 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:780万
展开全部

跳出for循环主要有以下2中方式:

1、用break语句。如:

int i;
for(i=0; i<10; i++)
{
    if(i>3)    // 如果i>3,跳出for循环,执行printf语句
        break;  
}
printf("%d", i);

2、用return语句(一般用在函数体中,作为函数的返回值跳出该函数,也即跳出了函数体中的for循环)

int fun(int a)
{
    int i;
    for(i=0; i<a; i++)
    {
        if(i>3)    // 如果i>3,则函数执行完毕,并返回变量i的值,也即跳出了for循环
            return i;  
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Richard018
2012-12-04 · TA获得超过173个赞
知道答主
回答量:48
采纳率:0%
帮助的人:36.5万
展开全部
我按照你的意思用g++试了一下,应该没问题。

#include <stdlib.h>
#include <stdio.h>
int main()
{
int num[20];
int i;
for (i = 0; i < 20; i++)
{
//int tmp;
//scanf("%d", &tmp);
scanf("%d", &(num[i]));
//num[i] = tmp;
if (num[i] == -1) break;
}
getchar();
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freeman_chen8
2012-12-04 · TA获得超过636个赞
知道小有建树答主
回答量:960
采纳率:50%
帮助的人:622万
展开全部
应该用if( num[i] == -1) then break;
照你的语句,如果输入的不是-1,就陷入while死循环了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jmzl900205
2012-12-04 · 超过32用户采纳过TA的回答
知道答主
回答量:206
采纳率:0%
帮助的人:59.4万
展开全部
就用break啊!在for循环里面加个判断,如果传入的是-1就执行break
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式