gpt4 book ai didi

Android 做 while 循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:30 26 4
gpt4 key购买 nike

嗨,这是我的第二个问题。我有下表

|-----|-------|------|------|
|._id.|..INFO.|.DONE.|.LAST.|
|..1..|...A...|...N..|......|
|..2..|...B...|...Y..|..L...|<--- cursor.moveToPosition((int)_id-1);
|..3..|...C...|...Y..|......|
|..4..|...D...|...Y..|......|
|..5..|...E...|...N..|......|
|..6..|...F...|...N..|......|
|-----|-------|------|------|

我使用代码:

cursor = db.query(TABLE_NAME, new String[]{INFO,DONE,LAST},null,null,null,null,null);
cursor.moveToPosition((int)_id-1);
String Yval = cursor.getString(cursor.getColumnIndex(DONE));
do
{
cursor.moveToNext();
Yval= cursor.getString(cursor.getColumnIndex(DONE));
}
while (Yval=="Y");
s = Yval;

我最初将光标指向我访问的最后一行,然后我循环遍历 DONE 列中的值,如果该列的行中有 Y,则不停止。当循环中出现 N 时,循环应该停止。但它不起作用。Yval 永远不等于“Y”。所以游标执行一个“moveToNext”然后退出循环,因为它不会将 Yval 读取为“Y”。(我也将所有内容都更改为整数。N 为 1,Y 为 0,但仍然无效)那么我在这里做错了什么?

最佳答案

所以如果你想比较Strings,你必须使用equals()方法

while (Yval.equals("Y"));

你应该知道:

  • == 测试引用相等性。
  • equals 测试值是否相等。

所以你想测试 Yval String 是否有 Y 值所以你必须使用 equals()方法。

你的方法不起作用因为:

String data = "lorem";
data == "lorem" ==> FALSE
data.equals("lorem") == TRUE


还要确保您的光标具有有效的,因此您还需要添加条件cursor.moveToNext()所以

cursor.moveToNext() && (Yval.equals("Y")

您还需要处理 cursor.moveToPosition((int)_id-1) 所以将其添加到条件中。

关于Android 做 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com