if 语句中的条件

标签 c if-statement conditional-statements

我正在浏览这篇文章 ( https://spin.atomicobject.com/2012/06/18/solving-sudoku-in-c-with-recursive-backtracking/),解释用 C 语言解决数独谜题的回溯方法,我有几个关于 if 语句中的条件的问题。

他使用 if(puzzle[row][column]),我不确定它在检查什么。如果该位置存在数字,它会继续吗?为此,我会考虑使用 != null 来检查它是否为空

他还在 if 语句中使用函数调用:if(isValid(nextNum, puzzle, row, column) 这是否意味着如果函数成功,它会执行 if 中的内容?

最佳答案

因为,在 C 中,int 表达式可以用来代替 bool 表达式,其中 0 为假,其他为真,if(puzzle[row][column]) 是一种惯用的写作方式

if(puzzle[row][column] != 0)

我更喜欢后者,因为前者似乎会让不熟悉该成语的人感到困惑。

If a number exists in that position it will continue? For this I would have thought to use != null

单元格中的值是数字 - 实际上是 int。他使用零作为“尚未填写”的约定。如果数组中的值是指针,我会同意 if(puzzle[row][column] != NULL) 但它们不是指针。

关于if 语句中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149038/

相关文章:

c - 简单数组初始化填充在 Linux (CentOS) 中有效,但在 Windows 中无效

c++ - 在Linux上使用C中的输入功能,无需按Enter键

c - 多线程服务器中的段错误

Java 使用 if else 语句的方法返回值

c - C 中的按位右移赋值运算符

python - 使用字典进行条件执行而不是 if..elif

java - 与 Java 和 SQL 相比,为什么或条件的工作方式不同

javascript - 在执行之前,在不同时刻清除几个条件

javascript - 如何在不使用模数的情况下编写此函数?

Java - 为类方法编写一个条件,确保只能使用 HashMap 的某些项目。