gpt4 book ai didi

java - 更改 for 循环内全局变量的值

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:40 24 4
gpt4 key购买 nike

我正在为学校作业创建一个小程序,人们可以在其中输入他们的运行历史记录(跑的英里数、耗时)并查看他们潜在的 10K 配速和马拉松配速时间。显示步速后,会显示不同步速的表格。

我有一个全局变量(pace),大多数计算都使用它运行,需要在 for 循环内更改它,但不会更新计算。

编辑:我知道这个程序写得不好,有很多东西可以压缩。然而,它可以工作并且将满足分配的参数。在 for 循环内部,变量“pace”需要在每次循环迭代时增加 30。

public class MarathonTime {

public static void main(String[] args) {

String name;
double distance;
int hours, minutes, seconds;
double pace;

@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);

System.out.print("What is your first name? ");
name = scanner.next();
System.out.print("How many miles did you run today? ");
distance = scanner.nextDouble();
System.out.print("How long did it take? Hours: ");
hours = scanner.nextInt();
System.out.print("Minutes: ");
minutes = scanner.nextInt();
System.out.print("Seconds: ");
seconds = scanner.nextInt();

pace = ((hours * 3600) + (minutes * 60) + seconds) / distance;
double marathonPace = pace * 26.2;
double tenKPace = pace * 6.2;

int paceMinutes, paceSeconds;
paceMinutes = (int) pace / 60;
paceSeconds = (int) pace % 60;

int marathonHours, marathonMinutes, marathonSeconds;
marathonHours = (int) marathonPace / 3600;
marathonMinutes = (int) (marathonPace % 3600) / 60;
marathonSeconds = (int) marathonPace % 60;

int tenKMinutes, tenKSeconds;
tenKMinutes = (int) tenKPace / 60;
tenKSeconds = (int) tenKPace % 60;

System.out.println("Hello " + name);
System.out.print("Your pace is "); timeFormatPace(paceMinutes, paceSeconds);
System.out.println();
System.out.print("At this rate your marathon time would be "); timeFormatMarathon(marathonHours, marathonMinutes, marathonSeconds);
System.out.println();
System.out.print("and your 10K time would be "); timeFormat10K(tenKMinutes, tenKSeconds);
System.out.println();
System.out.println("Good luck with your training!");
System.out.println();

for(int i = 1; i <= 10; i++){
if(i == 1) {
System.out.println("Pace \t\t 10K Time \t\t Marathon Time");
i++;
}
if(i == 2) {
System.out.println("------------------------------------------------------");
i++;
}
// input the tablePaces into the calcs and print them as the format
pace = (281 + (i*30));

if (i >= 3 && i <= 10) {

timeFormatPace(paceMinutes, paceSeconds); System.out.print("\t\t "); timeFormat10K(tenKMinutes, tenKSeconds); System.out.print("\t\t\t ");
timeFormatMarathon(marathonHours, marathonMinutes, marathonSeconds);
System.out.println();
}
}
}

最佳答案

我认为这就是你想要做的(非常简洁):

public static void main(String[] args) {
int pace = 100; // or initialise to whatever

for(int i = 0; i < 10; i++) {
// do something

pace = pace + 30; // or equivalently, pace += 30
}
}

将来,尝试将您的问题减少到 minimal, complete and verifiable example 。这样做的过程通常会帮助您自己解决问题,但至少对其他人来说也很容易。

此外,如果您知道您的程序写得不好,请修复它!写得好的、简洁的、模块化的程序更容易推理。凌乱、复杂的代码很困难。您会感谢自己花在调试上的时间更少,并且您也会获得更好的成绩。

关于java - 更改 for 循环内全局变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52378096/

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