相关疑难解决方法(0)

如何结束C++代码

如果满足某个条件,我希望我的C++代码停止运行,但我不知道该怎么做.因此,只要if声明为真,就可以在任何时候终止代码,如下所示:

if (x==1)
{
    kill code;
}
Run Code Online (Sandbox Code Playgroud)

c++

252
推荐指数
10
解决办法
32万
查看次数

求平方和时,是否需要显式处理负数或零?

我最近在课堂上做了一个测试。问题之一是:

给定一个数字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)

c

213
推荐指数
6
解决办法
2万
查看次数

您被迫遵循的最奇怪的编码标准规则是什么?

当我问这个问题时,我几乎总是肯定是的,你应该有编码标准.

您曾被迫遵循的最奇怪的编码标准规则是什么?

而最奇怪的是,我的意思是最有趣,或者最糟糕,或者只是简单的奇怪.

在每个答案中,请提及哪种语言,您的团队规模,以及它对您和您的团队造成的影响.

coding-style

173
推荐指数
72
解决办法
23万
查看次数

在for循环中使用break是不好的做法吗?

循环中使用break语句是不好的做法?for

说,我在数组中搜索一个值.比较for循环内部和找到值时,break;退出for循环.

这是一种不好的做法吗?我已经看到了使用替代:定义一个变量vFound,当被发现的价值它设置为true,并检查vFoundfor语句条件.但是,是否有必要为此目的创建一个新变量?

我在正常的C或C++ for循环的上下文中询问.

PS:MISRA编码指南建议不要使用break.

for-loop break

118
推荐指数
15
解决办法
14万
查看次数

为什么函数只有一个退出点?

我一直听说单个退出点功能是一种糟糕的代码方式,因为你失去了可读性和效率.我从来没有听到任何人争辩对方.

我认为这与CS有关,但这个问题在cstheory stackexchange中被击落.

coding-style

89
推荐指数
5
解决办法
4万
查看次数

为什么`finally`中的返回覆盖`try`?

try/catch块中的return语句如何工作?

function example() {
    try {
        return true;
    }
    finally {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待这个功能的输出true,但它是false!

javascript return try-catch try-catch-finally try-finally

81
推荐指数
5
解决办法
4万
查看次数

是否使用GOTO?

目前我正在开发一个使用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前进到一个标签那么它应该没问题(?).

c++ goto

61
推荐指数
14
解决办法
8万
查看次数

摆脱丑陋的if语句

我有这个丑陋的代码:

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语句?

java coding-style

60
推荐指数
13
解决办法
1万
查看次数

将代码包装到"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)

javascript coding-style

37
推荐指数
4
解决办法
2518
查看次数

这是滥用try/finally吗?

鉴于多个返回语句是可接受的(我有点不同意,但让我们离题),我正在寻找一种更可接受的方式来实现以下行为:

选项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)

java language-agnostic coding-style

32
推荐指数
3
解决办法
1628
查看次数