如果满足某个条件,我希望我的C++代码停止运行,但我不知道该怎么做.因此,只要if声明为真,就可以在任何时候终止代码,如下所示:
if (x==1)
{
kill code;
}
Run Code Online (Sandbox Code Playgroud) 我最近在课堂上做了一个测试。问题之一是:
给定一个数字n,用C / C ++编写一个函数,该函数返回数字平方的数字总和。(以下内容很重要)。的范围的Ñ为[ - (10 ^ 7),10 ^ 7]。示例:如果n = 123,则您的函数应返回14(1 ^ 2 + 2 ^ 2 + 3 ^ 2 = 14)。
这是我写的函数:
int sum_of_digits_squared(int n)
{
int s = 0, c;
while (n) {
c = n % 10;
s += (c * c);
n /= 10;
}
return s;
}
Run Code Online (Sandbox Code Playgroud)
看着我正确。所以现在测试又回来了,我发现老师由于我不明白的原因没有给我所有的分数。据他说,为了使我的功能更完整,我应该添加以下细节:
int sum_of_digits_squared(int n)
{
int s = 0, c;
if (n == 0) { // …Run Code Online (Sandbox Code Playgroud) 当我问这个问题时,我几乎总是肯定是的,你应该有编码标准.
您曾被迫遵循的最奇怪的编码标准规则是什么?
而最奇怪的是,我的意思是最有趣,或者最糟糕,或者只是简单的奇怪.
在每个答案中,请提及哪种语言,您的团队规模,以及它对您和您的团队造成的影响.
在循环中使用break语句是不好的做法?for
说,我在数组中搜索一个值.比较for循环内部和找到值时,break;退出for循环.
这是一种不好的做法吗?我已经看到了使用替代:定义一个变量vFound,当被发现的价值它设置为true,并检查vFound在for语句条件.但是,是否有必要为此目的创建一个新变量?
我在正常的C或C++ for循环的上下文中询问.
PS:MISRA编码指南建议不要使用break.
我一直听说单个退出点功能是一种糟糕的代码方式,因为你失去了可读性和效率.我从来没有听到任何人争辩对方.
我认为这与CS有关,但这个问题在cstheory stackexchange中被击落.
try/catch块中的return语句如何工作?
function example() {
try {
return true;
}
finally {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我期待这个功能的输出true,但它是false!
目前我正在开发一个使用goto语句的项目.goto语句的主要目的是在例程中使用一个清理部分而不是多个return语句.如下所示:
BOOL foo()
{
BOOL bRetVal = FALSE;
int *p = NULL;
p = new int;
if (p == NULL)
{
cout<<" OOM \n";
goto Exit;
}
// Lot of code...
Exit:
if(p)
{
delete p;
p = NULL;
}
return bRetVal;
}
Run Code Online (Sandbox Code Playgroud)
这使得我们可以更容易地跟踪代码中一个部分的清理代码,即在Exit标签之后.
但是,我已经阅读了许多地方,有goto语句是不好的做法.
目前我正在阅读Code Complete书,它说我们需要使用接近其声明的变量.如果我们使用goto,那么我们需要在第一次使用goto之前声明/初始化所有变量,否则编译器会给出goto语句跳过xx变量初始化的错误.
哪条路对不对?
来自Scott的评论:
看起来使用goto从一个部分跳转到另一个部分是不好的,因为它使代码难以阅读和理解.
但是如果我们只使用goto前进到一个标签那么它应该没问题(?).
我有这个丑陋的代码:
if ( v > 10 ) size = 6;
if ( v > 22 ) size = 5;
if ( v > 51 ) size = 4;
if ( v > 68 ) size = 3;
if ( v > 117 ) size = 2;
if ( v > 145 ) size = 1;
return size;
Run Code Online (Sandbox Code Playgroud)
如何摆脱多个if语句?
我正在使用JavaScript进行一些编码,而且我有很多实例需要在继续之前检查一些内容.我养成了早期返回功能的习惯,但我不确定我是否正确行事.我不确定它是否会随着代码的增长而对代码的复杂性产生影响.
我想从更有经验的JavaScript编码器中了解到,以下两个示例中的更好的通用实践是什么.或者它是无关紧要的,它们都是编写这个特定IF块的好方法吗?
1)我称之为早期或"短路"(Guard Clause).
ServeAlcohol = function(age)
{
if(age < 19)
return;
//...Code here for serving alcohol.....
}
Run Code Online (Sandbox Code Playgroud)
..要么...
2)将代码包装到IF语句中.
ServeAlcohol = function(age)
{
if(age >= 19)
{
//...Code here for serving alcohol.....
}
}
Run Code Online (Sandbox Code Playgroud) 鉴于多个返回语句是可接受的(我有点不同意,但让我们离题),我正在寻找一种更可接受的方式来实现以下行为:
选项A:多次返回,重复代码块
public bool myMethod() {
/* ... code ... */
if(thisCondition) {
/* ... code that must run at end of method ... */
return false;
}
/* ... more code ... */
if(thatCondition) {
/* ... the SAME code that must run at end of method ... */
return false;
}
/* ... even more code ... */
/* ... the SAME CODE AGAIN that must run at end of method ... */ …Run Code Online (Sandbox Code Playgroud) coding-style ×5
c++ ×2
java ×2
javascript ×2
break ×1
c ×1
for-loop ×1
goto ×1
return ×1
try-catch ×1
try-finally ×1