首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Do-while循环不会转义- Java

Do-while循环不会转义- Java
EN

Stack Overflow用户
提问于 2012-09-16 10:40:34
回答 3查看 456关注 0票数 0

do-while循环是在值被递增之前还是之后检查它?我似乎不能让do-while循环转义,也不能确定这是否是我正在犯的错误。这个循环的重点是接受用户的输入,当他们点击'X‘时,我希望循环结束。我是否使用了错误的循环类型,或者可能是错误的语句?

代码语言:javascript
复制
int i = 0, 
inputCount = 0;
char letter = 'a';
String[] coefficient = new String[MAX_LENGTH];  
do{ 
    System.out.print("What is " + letter +"? ");
    coefficient[i] = keyboard.nextLine();
    i++;
    letter++;
    inputCount++;           
}while(coefficient[i] != "X");
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-16 10:49:09

您将在coefficient[i] = keyboard.nextLine();while(coefficient[i] != "X");之间递增i,因此在检查coefficienti为null时,还可以使用.equals来比较字符串。

代码语言:javascript
复制
int i = 0, 
inputCount = 0;
char letter = 'a';
String[] coefficient = new String[MAX_LENGTH];  
do{ 
    System.out.print("What is " + letter +"? ");
    coefficient[i] = keyboard.nextLine();
    i++;
    letter++;
    inputCount++;           
}while(!coefficient[i-1].equals("X"));
票数 1
EN

Stack Overflow用户

发布于 2012-09-16 10:43:38

不要使用==比较字符串。请改用equals(...)equalsIgnoreCase(...)方法。要知道,==会检查这两个对象是否相同,而这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这才是关键所在。因此,不是

代码语言:javascript
复制
if (fu == "bar") {
  // do something
}

做,

代码语言:javascript
复制
if ("bar".equals(fu)) {
  // do something
}

或,

代码语言:javascript
复制
if ("bar".equalsIgnoreCase(fu)) {
  // do something
}  

特别是你的情况,我会改变

代码语言:javascript
复制
} while(coefficient[i] != "X");

类似这样的东西:

代码语言:javascript
复制
} while(!"X".equalsIgnoreCase(coefficient[i]));

在您的代码中还存在另一个问题,您希望测试放入coefficient[i]中的用户输入,但随后您立即递增i变量,使得coefficient[i]不再引用该输入。

因此,也许测试应该改为:

代码语言:javascript
复制
} while(!"X".equalsIgnoreCase(coefficient[i - 1]));
票数 4
EN

Stack Overflow用户

发布于 2012-09-16 10:48:31

这里有两个问题。首先,您不应该使用逻辑运算符比较字符串。请改用.equals。例如:

代码语言:javascript
复制
coefficient[i].equals("X");

其次,在检查while条件之前,您要递增数组索引计数器。因此,您实际上需要从其中减去1,以检查最近输入的字符串是否为X。

看看使用这个是否能让它正常工作:

代码语言:javascript
复制
coefficient[i-1].equals("X");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12444047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档