if语句中break用法

小菜一枚 小菜一枚 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
说是break会直接跳出最内层的循环或switch语句块,不理睬if语句,那么如下程序,则是若为真直接跳出for循环,执行printf("\n")
int main()
{
int m,n,res,i;
printf("输入被除数和除数:");
scanf("%d%d",&m,&n);
printf("%d.",m/n);//先输出整数部分和小数点
res=m%n;//取余数
for(i=0;i<Max;i++)
{
res*=10;//余数乘10
printf("%d",res/n);// 余数乘10后再与除数相除,输出第i+1位小数
res=res%n;//取余数
if(0==res)//若为真直接跳出for循环,执行printf("\n")
{
break;
}
}
printf("\n");
return 0;
}

若是如下呢,if为真时,break跳到哪里?
int main()
{
for(i=0;i<Max;i++)
{
while(...)
{
if(0==res)//余数为0时说明除法结束,并退出,否则输出Max位小数
{
break;
}
printf("A");
}
printf("B");
}
printf("\n");
return 0;
}

2.不好意思哈~还有个问题比较迷糊:
若break在if语句的else中,是不是也直接跳出最内层循环,如下例中跳出
for(int i = nLength - 1; i >= 0; i --)
bool Increment(char* number)

{

bool isOverflow = false;

int nTakeOver = 0;

int nLength = strlen(number);
for(int i = nLength - 1; i >= 0; i --)

{

int nSum = number[i] - '0' + nTakeOver;

if(i == nLength - 1)

nSum ++;

if(nSum >= 10)

{

if(i == 0)

isOverflow = true;

else

{

nSum -= 10;

nTakeOver = 1;

number[i] = '0' + nSum;

}

}

else

{

number[i] = '0' + nSum;

break;

}

}


return isOverflow;

}
...全文

相关推荐

评论 24
收藏 已收藏
分享
返回顶部
小菜一枚
C语言 70,039 成员 243,237 内容