c语言为什么显示非法break啊?

img


我看了其他的相同问题,我把for后面的分号去掉了,也还是这样,希望大家帮我看看哪里错了

因为break是用于跳出循环或switch语句结构,但仅仅在一个if里面是不能使用break的,所以报错了;

可以把if-else语句放到for循环中;然后去掉第二个if的后面的分号。

修改如下:

参考链接:


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

int main(void){
    
    int i=0;
    char password[20]={0};
    
    for(i=0;i<3;i++){
        
        printf("请输入密码!>");        
        scanf("%s",password);
        
        // 将这个判断密码是否正确的if-else语句放到for循环里
        // 然后if里的break就不会编译报错了 
        if(strcmp(password,"123456")==0){
            printf("密码正确\n");
        // https://zhuanlan.zhihu.com/p/35581823
            break;
        }else{
            printf("密码错误\n");
        }
    }
    

    
    if(i==3) // 这个if后面的分号去掉 
    {
        printf("输入密码超出限制,请下次再试\n");
    }
    
    return 0;
    
} 

img

你这个break是想break什么
没在循环里面

你这个break多余的

嵌套错了,if 要在 for 里面。

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

int main()
{
    int i;
    char passwordId[20] = {};

    for (i = 0; i < 3; i++)
    {
        printf("请输入密码!> ");
        scanf("%s", passwordId);

        if (strcmp(passwordId, "123456") == 0)
        {
            printf("密码正确\n");
            break;
        }
        printf("密码错误\n");
    }

    if (i == 3)
    {
        printf("输入密码超出限制, 请下次再试\n");
    }

    return 0;
}

这里break用的有问题的,break语句用于switch,while或for等循环语句中,做跳出循环使用,你这里直接在main函数没法跳出循环啊!肯定就报错非法了不!能明白不?有问题可以私聊

break只用在switch或循环结构里。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/719613
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c语言中break的注意事项
  • 除此之外, 这篇博客: C语言break精解中的 怎么用? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如下

            ①控制台会一直从累加1到100000000;

    #include<stdio.h>
    int main() {
        for (int i = 1;i <= 100000000;i++) { //用for循环做循环直到i=100000000
        printf("%d\n", i); //输出i
        }
    }

            ②加上控制语句,if累加到100立即break; 

    #include<stdio.h>
    int main() {
    	for (int i = 1;i <= 100000000;i++) { //用for循环做循环直到i=100000000
    		printf("%d\n", i); //输出i
    		if (i == 100) { //累加到100
    			break; //跳出循环
    		}
    	}
    }

            ③如下图累加到100停止;

     switch语句中跳出case分支参考>>>case精解

  • 您还可以看一下 张颜源老师的2020新版C语言程序设计零基础入门小白自学编程课程中的 控制流循环结构之break、continue语句小节, 巩固相关知识点