在花括号内添加语句会否改变原有代码功能?

2026-04-16 19:085阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计386个文字,预计阅读时间需要2分钟。

在花括号内添加语句会否改变原有代码功能?

我换了一种方式重写代码,不使用数组和字符串替换,直接将空格替换为破折号。

c#include

void sp_to_dash(const char *str) { while (*str) { if (*str==' ') { std::cout << -; } else { std::cout << *str; } str++; }}

int main() { sp_to_dash(hello); return 0;}

我是C的新手,我试图从C引用复制代码,将字符串中的空格变为破折号.这是代码

void sp_to_dash(const char *str){ while(*str){ if(*str==' ') cout<<("%c", '-'); else cout<<("%c", *str); str++; } } int main(){ sp_to_dash("hello world how are you"); int j; cin>>j; return 0; }

现在这很完美,我得到的输出是
OUTPUT:
你好,世界怎么样,是,你

在花括号内添加语句会否改变原有代码功能?

但是,当我将代码括在sp_to_dash函数中的花括号中时,就像这样

void sp_to_dash(const char *str) { while (*str) { if (*str==' ') { cout << ("%c", '-'); } else { cout << ("%c", *str); str++; } } }

我得到的输出是一个无限循环的破折号,我不明白为什么会这样,有人能解释为什么在这样的花括号中添加代码会触发无限循环吗?

缩进是误导性的.在if或else分支下只能有一个语句.要放几个,它必须是复合语句(用大括号).所以这

else cout<<("%c", *str); str++;

……相当于此

else cout<<("%c", *str); str++;

因此,添加花括号会更改程序的控制流程,这就是您获得不同行为的原因.许多(可能是大多数)会建议总是添加大括号,甚至在单个语句分支上,以便将来证明它.

本文共计386个文字,预计阅读时间需要2分钟。

在花括号内添加语句会否改变原有代码功能?

我换了一种方式重写代码,不使用数组和字符串替换,直接将空格替换为破折号。

c#include

void sp_to_dash(const char *str) { while (*str) { if (*str==' ') { std::cout << -; } else { std::cout << *str; } str++; }}

int main() { sp_to_dash(hello); return 0;}

我是C的新手,我试图从C引用复制代码,将字符串中的空格变为破折号.这是代码

void sp_to_dash(const char *str){ while(*str){ if(*str==' ') cout<<("%c", '-'); else cout<<("%c", *str); str++; } } int main(){ sp_to_dash("hello world how are you"); int j; cin>>j; return 0; }

现在这很完美,我得到的输出是
OUTPUT:
你好,世界怎么样,是,你

在花括号内添加语句会否改变原有代码功能?

但是,当我将代码括在sp_to_dash函数中的花括号中时,就像这样

void sp_to_dash(const char *str) { while (*str) { if (*str==' ') { cout << ("%c", '-'); } else { cout << ("%c", *str); str++; } } }

我得到的输出是一个无限循环的破折号,我不明白为什么会这样,有人能解释为什么在这样的花括号中添加代码会触发无限循环吗?

缩进是误导性的.在if或else分支下只能有一个语句.要放几个,它必须是复合语句(用大括号).所以这

else cout<<("%c", *str); str++;

……相当于此

else cout<<("%c", *str); str++;

因此,添加花括号会更改程序的控制流程,这就是您获得不同行为的原因.许多(可能是大多数)会建议总是添加大括号,甚至在单个语句分支上,以便将来证明它.