如何在不返回 int 的情况下从 int 方法打印字符串?
How to print string from an int method without returning int?
我正在研究一种方法。它returns int
.
int top() {
return q.peek();
}
上述方法对于非空队列工作正常。不适用于空队列。
当我修改这段代码来处理空队列时,会是这样
int top() {
if (q.isEmpty()) {
System.out.println("queue is empty"); // I want to end the process here
return -1; // I don't want this line to return -1
}
return q.peek(); // I don't want this line to execute
}
System.out.println(q.top());
如果队列为空,结果会是这样
queue is empty
-1
我希望它只打印 queue is empty
,而不是 -1。
那么在 Java 这种情况下,有没有办法只修改 top()
方法?
是否要仅在队列不为空时打印返回的 int,否则打印“队列为空”?如果是这样,做这样的事情怎么样:
int top() {
if (q.isEmpty()) {
return -1;
}
return q.peek();
}
System.out.println(q.top() == -1 ? "queue is empty" : q.top());
还有一个选项:
int top() throws Exception {
if (q.isEmpty()) {
throw new Exception("queue is empty");
}
return q.peek();
}
try {
System.out.println(q.top());
} catch (Exception e) {
System.out.println(e.getMessage());
}
当方法签名 return int
时,您不应尝试 return 另一种类型,因为它会使阅读您代码的其他成员感到困惑。
如果您无法修改 System.out.println()
方法,最好的选择是在您的方法中抛出异常,就像 Caitlyn Wiley 给出的答案一样。
另一个可接受的方法是 return 一个表示错误的整数(就像你对 -1 所做的那样),只要你有好的文档来解释它。
如果您能够将 System.out.println(q.top());
更改为仅调用 q.top();
,您只需从方法内部打印即可:
int top() {
if (q.isEmpty()) {
System.out.println("queue is empty");
return -1;
}
System.out.println(q.peek());
return q.peek();
}
如果您无法更改有关 System.out.println(q.top())
语句的任何内容,您需要 return 改为 String
并使用 Integer.toString
将值转换为 String
:
String top() {
if (q.isEmpty()) {
return "queue is empty";
}
return Integer.toString(q.peek());
}
我刚刚找到了另一种无需更改 top()
数据类型即可解决此问题的方法。
int top() {
if (q.isEmpty())
System.out.println("queue is empty");
System.exit(0);
return q.peek();
}
大家怎么看?
谢谢你对我问题的每一个回答。我很感激。
所有答案都非常有用。
我正在研究一种方法。它returns int
.
int top() {
return q.peek();
}
上述方法对于非空队列工作正常。不适用于空队列。
当我修改这段代码来处理空队列时,会是这样
int top() {
if (q.isEmpty()) {
System.out.println("queue is empty"); // I want to end the process here
return -1; // I don't want this line to return -1
}
return q.peek(); // I don't want this line to execute
}
System.out.println(q.top());
如果队列为空,结果会是这样
queue is empty
-1
我希望它只打印 queue is empty
,而不是 -1。
那么在 Java 这种情况下,有没有办法只修改 top()
方法?
是否要仅在队列不为空时打印返回的 int,否则打印“队列为空”?如果是这样,做这样的事情怎么样:
int top() {
if (q.isEmpty()) {
return -1;
}
return q.peek();
}
System.out.println(q.top() == -1 ? "queue is empty" : q.top());
还有一个选项:
int top() throws Exception {
if (q.isEmpty()) {
throw new Exception("queue is empty");
}
return q.peek();
}
try {
System.out.println(q.top());
} catch (Exception e) {
System.out.println(e.getMessage());
}
当方法签名 return int
时,您不应尝试 return 另一种类型,因为它会使阅读您代码的其他成员感到困惑。
如果您无法修改 System.out.println()
方法,最好的选择是在您的方法中抛出异常,就像 Caitlyn Wiley 给出的答案一样。
另一个可接受的方法是 return 一个表示错误的整数(就像你对 -1 所做的那样),只要你有好的文档来解释它。
如果您能够将 System.out.println(q.top());
更改为仅调用 q.top();
,您只需从方法内部打印即可:
int top() {
if (q.isEmpty()) {
System.out.println("queue is empty");
return -1;
}
System.out.println(q.peek());
return q.peek();
}
如果您无法更改有关 System.out.println(q.top())
语句的任何内容,您需要 return 改为 String
并使用 Integer.toString
将值转换为 String
:
String top() {
if (q.isEmpty()) {
return "queue is empty";
}
return Integer.toString(q.peek());
}
我刚刚找到了另一种无需更改 top()
数据类型即可解决此问题的方法。
int top() {
if (q.isEmpty())
System.out.println("queue is empty");
System.exit(0);
return q.peek();
}
大家怎么看?
谢谢你对我问题的每一个回答。我很感激。 所有答案都非常有用。