none
请教个break问题 RRS feed

  • 问题

  • 请教一下下面的问题:先看源码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    int main()
    {
    	char zyai[5][2][8],zybi[5][2][8];
    	int i,j,k,counti=0;
    	printf("input information:\n");
    	//printf("^%d\n",'\^');
    	for (i=0;i<5;i++)
    	{
    		for (j=0;j<2;j++)
    		{
    			for (k=0;k<8;k++)
    			{
    				zyai[i][j][k] = '0';
    			}
    		}
    	}
    	for (i=0;i<5;i++)
    	{
    		for (j=0;j<2;j++)
    		{
    			for (k=0;k<8;k++)
    			{
    				zyai[i][j][k] = getchar();
    				if (zyai[i][j][k]==' ')
    				{
    					counti = counti+1;
    					break;
    				}
    				if (zyai[i][j][k]=='\^')
    				{
    					break;
    				}
    			}
    		}
    		if (zyai[i][j][k]=='\^') //为什么不执行这个语句,输入了“^”这个字符了.
    		{
    			break;
    		}
    	}
    	for (i=0;i<counti/2;i++)
    	{
    		for (j=0;j<2;j++)
    		{
    			printf("%s\t",zyai[i][j]);
    			if ((j+1)%2==0)
    			{
    				printf("\n");
    			}
    		}
    	}
    	system("pause");
    	return 0;
    }
    

    问题:if (zyai[i][j][k]=='\^') //为什么不执行这个语句,输入了“^”这个字符了.

    break语句不是跳出for循环的语句吗?理论上输入“^”字符执行两次if下的break语句跳出输入的嘛,为什么不是这样,谁能告诉我下?


    煮酒论英雄
    2011年9月25日 11:45

答案

  • 不好意思

    打错的

    是转义

    我没说你想转移

    我是说^不是转移字符

    所以你这么写是错误的

    • 已标记为答案 Rob Pan 2011年10月4日 7:54
    2011年9月27日 2:33

全部回复

  • 我使用三维字符数组想要完成填写10个人每个人两个属性(1个属性是编号,1个属性是人的姓名)的要求,前提我不想用结构体共用体(暂时还没有学到只想像上面这么做),另外我用的c语言


    煮酒论英雄
    2011年9月25日 11:51
  • ^不是转移字符

    所以语句应该写成

    if (zyai[i][j][k]=='^')

    2011年9月26日 0:48
  • 另外for (j=0;j<2;j++) { for (k=0;k<8;k++) { zyai[i][j][k] = getchar(); if (zyai[i][j][k]==' ') { counti = counti+1; break; } if (zyai[i][j][k]=='\^') { break; } } } 这里的break跳不出两个for循环。
    麻烦把正确答案设为解答。
    2011年9月26日 7:58
    版主
  • 不是想转移 只是想随便设置一个跳出字符
    煮酒论英雄
    2011年9月26日 12:20
  • 每个for里面放置一个break就可以跳出来了吧,这个方法后来我想出来勒
    煮酒论英雄
    2011年9月26日 12:21
  • 不好意思

    打错的

    是转义

    我没说你想转移

    我是说^不是转移字符

    所以你这么写是错误的

    • 已标记为答案 Rob Pan 2011年10月4日 7:54
    2011年9月27日 2:33