- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 while 循环中比较字符串中的相邻字符,但以下 2 个 if 语句给出了不同的结果。
第一个:(这不起作用)
if (input_str[k] == input_str[++k]) {
count++;
}
例如当 k=0 那么它应该是“if (input_str[0] == input_str[1])”
第二:(这个有效)
if (input_str[k++] == input_str[k]) {
count++;
}
例如当 k=0 那么它应该是“if (input_str[0] == input_str[1])”
我想安全的方法是下面的代码,但我仍然想知道为什么其他两个 if 语句产生不同的结果。
if (input_str[k] == input_str[k + 1]) {
count++;
}
k++;
最佳答案
在所有这些情况下:
input_str[k] == input_str[++k]
input_str[k++] == input_str[k]
input_str[k] == input_str[k + 1]
第一个表达式不保证在第二个表达式之前被求值。它也可以在第二个表达式之后求值。
即当 k = 0
,
input_str[k] == input_str[++k]
可以计算为 input_str[0] == input_str[1]
或 input_str[1 ] == input_str[1]
。input_str[k++] == input_str[k]
可以计算为 input_str[0] == input_str[1]
或 input_str[0] = = input_str[0]
.input_str[k] == input_str[k + 1]
将始终被评估为 input_str[0] == input_str[1]
.简而言之,您在前两种情况下调用了未定义的行为,唯一安全的方法是使用k + 1
并递增 k
之后。
参见 this question解释为什么会发生这种情况。
关于c - if 语句中的自增运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751236/
1、修改数据 复制代码代码如下: DataRow dr =
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
我是一名优秀的程序员,十分优秀!