do..while 循环中的继续和中断语句错误

Posted

技术标签:

【中文标题】do..while 循环中的继续和中断语句错误【英文标题】:Continue and break statement error in do..while loop 【发布时间】:2017-01-26 14:19:07 【问题描述】:

具体来说,我想介绍一下不同的汽车,一开始就宣布了6个区。程序问我这辆车是哪个区的,如果输入相同,我会继续输入汽车的详细信息,如果不是,我想回到区阅读。我的问题是当我正确阅读第一区时,程序运行良好并返回区阅读,但在第二区,不再工作了。我将附上上面的代码。我需要提一下,这是我第一次使用“继续”和“中断”语句,我认为这是主要问题。谢谢!

#include <stdio.h>
#include <string.h>

typedef struct record 
    char name[15];
    int year[4];
    char serial[15];
    char owner[24];
    char plate[12];
;

int main() 
    struct record rec[100];
    char search[20];
    int imax=0;
    int i=0,j=0;
    char n;
    char* district[]=     "Rahova","Giulesti","Crangasi","Militari","Pantelimon","Ferentari";
    char district_input[20];


printf("\nEnter the cars: ");
do 
    printf("\nCar's number %d -> Enter district: ",i+1);
    scanf("%s",district_input);
    for (;j<=5;j++) 
        if(strcmp(district_input,district[j])==0)
            printf("\t\t    ->Name of the car: ");
            scanf("%s",rec[i].name);
            printf("\t\t    ->Release year: ");
            scanf("%d",rec[i].year);
            printf("\t\t    ->Serial number: ");
            scanf("%s",rec[i].serial);
            printf("\t\t    ->Number plate: ");
            scanf("%s",rec[i].plate);
            printf("\t\t    ->Last 3 owners: ");
            scanf("%s",rec[i].owner);
            printf("\nAdd more? [y/n]\t");
            i++;
            imax++;
            break;
         
        continue;
    
    printf("\nAdd more? [y/n]\t");
 while ((n=getche()) != 'n');


【问题讨论】:

continuefor 循环的末尾没有效果。不确定什么不清楚;阅读您的 C 书籍中的两个语句。 【参考方案1】:

breakcontinue 不要做你认为他们做的事。它们仅适用于编写它们的最内层循环。在这种情况下,for 循环。它们与外部 while 循环无关。

例如

for (;j<=5;j++) 
  ...
  continue

等同于

for (;j<=5;j++) 
  ...

【讨论】:

我认为(并且我从 sintaxe 中了解到)如果我将 break 放入 if 语句中,for 循环将在每次到达第一个输入时结束并重新加载

以上是关于do..while 循环中的继续和中断语句错误的主要内容,如果未能解决你的问题,请参考以下文章

c语言中的do while语句怎样理解

循环语句

简析Java中while循环与do/while循环的区别

流程控制语句-do...while循环

JS中 do while循环问题

for,while,do while语句区别以及常见死循环格式