gpt4 book ai didi

java - 两点之间的循环距离,q为退出

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:00 24 4
gpt4 key购买 nike

这是我的情况:

我需要代码在循环中运行,一遍又一遍地向用户询问相同的问题,直到用户为任何点键入“q”以终止/退出循环,从而退出程序.

问题是我尝试使用 do-while/while 循环,而这些循环仅在条件为真时才执行。但我需要条件(“q”)为假,这样它才能继续循环。如果条件为真 (input.equals("q")) ,那么它不会什么都不做,因为它将使用字符串 ("q") 代替整数/ double 值来计算距离。

我已经想出如何获取距离,代码运行良好,但是有什么变通方法可以让循环在条件为假时继续吗?

顺便说一下,我只是勉强学习 java 以防万一...

'.

import java.*;
public class Points {
public static void main(String[] args){

java.util.Scanner input = new java.util.Scanner(System.in);

System.out.print("Enter the first X coordinate: ");
double x1 = input.nextDouble();
System.out.print("Enter the first Y coordinate: ");
double y1 = input.nextDouble();
System.out.print("Enter the second X coordinate: ");
double x2 = input.nextDouble();
System.out.print("Enter the second Y coordinate: ");
double y2 = input.nextDouble();
System.out.println("(" + x1 + ", " + y1 + ")" + " " + "(" + x2 + ", " + y2+ ")");

double getSolution = Math.sqrt(((x2-x1) * (x2-x1)) + ((y2-y1) * (y2-y1)));
System.out.println(getSolution);
}
}'

最佳答案

解决方案是使用 String line = input.nextLine()而不是 nextDouble()。然后你可以有一个像这样的方法:

public static boolean timeToExit(String input) {
return input.equalsIgnoreCase("q");
}

每次用户提供输入时都需要调用此方法:

if (timeToExit(line)) break;

这将退出一个循环。

现在,因为你有 double 的字符串表示,你需要使用 Double.parseDouble(line)将字符串转换为数字。

然后您所要做的就是将所有内容包含在一个无限循环中 -> while(true) { }

而且,它退出循环的唯一时间是当 timeToExit 方法返回 true 并且您中断循环时。

这一切都变成了这样的:

while (true) {
...
System.out.print("Enter the first X coordinate: ");
String x1 = input.nextLine();
if (timeToExit(x1)) break;
double x1_d = Double.parseDouble(x1);
...
}

关于java - 两点之间的循环距离,q为退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3963230/

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