标签: conditional-statements

声明作为条件 - 添加括号会导致错误

为什么这样可以:

\n\n
if(int i = 1) {\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

...而以下会产生错误?

\n\n
if((int i = 1)) {\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 g++ (4.4.5) 下,后者给出:

\n\n
\n

test.cpp:7: 错误: 预期的主表达式在 \xe2\x80\x98int\xe2\x80\x99
\n test.cpp:7: 错误: 预期的 \xe2\x80\x98)\xe2\x80\x99 之前\xe2\x80\x98int\xe2\x80\x99
\n test.cpp:9: 错误: 预期 \xe2\x80\x98)\xe2\x80\x99 在 \xe2\x80\x98else\xe2\x80\x99 \
之前n test.cpp:13: 错误:\xe2\x80\x98}\xe2\x80\x99 标记之前预期的主表达式
\n test.cpp:13: 错误:预期 \xe2\x80\x98;\xe2\x80 \x99 位于 \xe2\x80\x98}\xe2\x80\x99 标记之前

\n
\n\n

顺便说一句,我问的原因是因为这个答案:Seeing what class an object is

\n\n

我正在尝试找到一种方法使条件更具可读性。通常,我更喜欢,例如:

\n\n
if((x = y) != 0) {\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
if(x = y) {\n
Run Code Online (Sandbox Code Playgroud)\n\n

...因为它更具可读性并且使编译器“注释”静音,表明我可能使用了错误的运算符。如果我使用声明 …

c++ variable-assignment conditional-statements

2
推荐指数
1
解决办法
2064
查看次数

如何使 BASH 脚本仅在特定目录中运行?

我的 Linux 作业要求我编写一个仅在用户位于 ~/tareas/session_3 时运行的脚本,所以我假设他首先需要输入 cd /~/tareas/session_3 然后脚本命令才会运行,如果不是的话'会回显“你不在/~/tareas/session_3”。在脚本中,我需要创建更多目录,并且只能在该位置创建它们。

我怎样才能提出这样的条件呢?

我感谢你们提供的每一点帮助!

linux bash conditional-statements

2
推荐指数
1
解决办法
1032
查看次数

在 C# 中,如何仅在没有类属性的情况下为类属性生成值?

我有以下带有属性的C#Id,我想使用 GUID 设置该属性,如果消费者调用尚未设置此值的 myClass.Id 实例的值,则返回该属性,否则保留并返回现有价值。

public class IdentifiableClass{
   public string Id {
          get { 
                if (this.Id == null) {
                    this.Id = Guid.NewGuid().ToString();
                    Console.WriteLine("########## Id : " + this.Id );
                }
                return this.Id;
            }
            set => this.Id = value;
   }
}
Run Code Online (Sandbox Code Playgroud)

C#中,这样做不是工作,而是我得到一个计算器(不是这个网站,很明显)。最好的猜测是,在同一属性的 getter 中调用 this.Id 似乎会导致循环逻辑。

Salesforce Apex 中,使用类似的代码,它确实按照我的预期工作,将 this.Id 的值评估为 null,将值分配给新的 Guid,显示值,然后返回值:

public class IdentifiableClass {
   public string Id {
          get { …
Run Code Online (Sandbox Code Playgroud)

c# getter guid accessor conditional-statements

2
推荐指数
1
解决办法
337
查看次数

Flutter - 如何为平台(Android、iOS、Web)使用条件编译?

我正在 Flutter 中创建一个移动应用程序。现在我有一个问题,对于一个平台我将使用另一个平台的插件,我需要编写我的平台代码(插件的实现不合适)。

我看到了几种解决方案:

  1. 最好创建多个项目并在其中使用条件编译和共享文件。我在视觉工作室中使用了这种技术。但我现在正在使用 android studio。没有项目文件,只有文件夹。

    还有条件编译支持的问题。我发现这篇文章和条件编译非常有限。

  2. 创建您自己的插件并充分使用它。但它更劳动密集。

    你有什么建议也许有第三种方式?

conditional-statements dart flutter flutter-dependencies

2
推荐指数
1
解决办法
1604
查看次数

Javascript。为什么这个条件 s[i+1] 不会给出“超出范围”的错误?

var romanToInt = function(s) {
  value = 0;
  for (let i = 0; i < s.length; i += 1) {
    symbols[s[i]] < symbols[s[i + 1]] ? value -= symbols[s[i]] : value += symbols[s[i]]
  }
  return value
};
Run Code Online (Sandbox Code Playgroud)

这是一个 leetcode 示例,我对这种情况感到困惑symbols[s[i]] < symbols[s[i+1]] ?,我不明白为什么 s[i+1] 不会超出范围?或者它超出范围但被认为是错误的?

javascript ternary conditional-statements

2
推荐指数
1
解决办法
107
查看次数

Javascript - 函数,缺少参数

宝贝编码器在这里,刚刚进入功能。我创建了一个计算矩形面积的函数,只要提供两个参数,它就可以工作。如果只提供一个参数,我希望我的代码假设形状是正方形(因此长度和宽度相等)。我一直在尝试提出一个条件,但不知道如何说“如果只有一个参数,则长度 === 宽度”。任何指针表示赞赏!

function area(length, width) {
    let rectangleArea = Number(length) * Number(width);
    return rectangleArea;
}
console.log(area(10, 5));
Run Code Online (Sandbox Code Playgroud)

javascript arguments function conditional-statements

2
推荐指数
1
解决办法
50
查看次数

Lisp - 无论如何执行“何时”条件?

我正在定义一个函数来测试一个数字是否为素数,并且我有一个有效的算法(在 Python 中)并且我已经将它的大部分移植到 Lisp。然而,问题是我的素性测试即使在不应该通过的情况下也一直通过。例如,isPrime(13)仍然达到return NIL即使它应该失败的when条件。

(defun isPrime(n)
    (cond 
        ((< n 2); numbers less than 2 aren't prime
            NIL
        )
        ((equal n 2); 2 is the only even prime
            T
        )
        ((equal (rem n 2) 0); Even numbers are never prime (besides 2)
            NIL
        )
        ((> n 2)
            (loop for i from 2 to n do(
                    when(equal (rem n i) 0);If n is evenly divisible by i, we have found a factor other than 1 …
Run Code Online (Sandbox Code Playgroud)

lisp primes common-lisp conditional-statements

2
推荐指数
1
解决办法
114
查看次数

Numpy选择具有沿轴条件的元素

我有一个二维 numpy 数组 x 为:

[  [ 1,  2,  3],
   [ 4,  5,  6],
   [ 7,  8,  9],
   [10, 11, 12],
   [13, 14, 15],
   [16, 17, 18],
   [19, 20, 21],
   [22, 23, 24],
   [25, 26, 27],
   [28, 29, 30],
   [31, 32, 33],
   [34, 35, 36],
   [37, 38, 39],
   [40, 41, 42],
   [43, 44, 45],
   [46, 47, 48],
   [49, 50, 51],
   [52, 53, 54],
   [55, 56, 57],
   [58, 59, 60]  ]
Run Code Online (Sandbox Code Playgroud)

我想提取行中任何元素都小于 25 的行的参数。所以,我需要输出的是[0,1,2,3,4,5,6,7]仅行,但 usingnp.where(x<35)是为我提供所有可能值的 2D 参数列表。换句话说,我想要的是 …

python numpy conditional-statements numpy-ndarray

2
推荐指数
1
解决办法
365
查看次数

Python 3 if-else 简写命令语法错误

每当我编写 .Python 3 时,都会显示语法错误sys.exit() if condition else return

为什么这是一个语法错误?如果无法修复,有没有办法在一行中执行相同的操作?

python conditional-statements python-3.x

2
推荐指数
1
解决办法
55
查看次数

Ruby:作为变量的条件不起作用

刚开始在 Ruby 中学习循环和流控制,并坚持了这个练习。我一直在测试和寻找答案,但没有找到任何答案,所以我在这里发帖。

如果我有这样的代码设置:

ask_play = ''
loop do
    print "Play?: "
    ask_play = gets.chomp
    break if (ask_play == 'n') || (ask_play == 'N')
end
Run Code Online (Sandbox Code Playgroud)

然后我在输入 n 或 N 后退出循环。

但是,如果我的代码设置如下:

ask_play = ''
play_stop = (ask_play == 'n') || (ask_play == 'N')
loop do
    print "Play?: "
    ask_play = gets.chomp
    break if play_stop
end
Run Code Online (Sandbox Code Playgroud)

该条件似乎不起作用。即使在输入 n 或 N 之后,我仍然继续循环,我只是不明白为什么。

ruby loops conditional-statements

2
推荐指数
1
解决办法
57
查看次数