Java 更改for循环中全局变量的值
我正在为一个学校作业创建一个小程序,在这个程序中,人们可以输入他们的跑步历史(跑步英里数、经过的时间)并查看他们潜在的10公里配速和马拉松配速时间。显示步幅后,将显示不同步幅的表格 我有一个全局变量(pace),大多数计算都使用该变量运行,它需要在for循环中更改,但不会为计算更新 编辑:我知道这个程序写得很差,有很多东西可以浓缩。但是,它可以工作,并且将满足分配的参数。在for循环中,变量“pace”需要随着循环的每次迭代增加30Java 更改for循环中全局变量的值,java,Java,我正在为一个学校作业创建一个小程序,在这个程序中,人们可以输入他们的跑步历史(跑步英里数、经过的时间)并查看他们潜在的10公里配速和马拉松配速时间。显示步幅后,将显示不同步幅的表格 我有一个全局变量(pace),大多数计算都使用该变量运行,它需要在for循环中更改,但不会为计算更新 编辑:我知道这个程序写得很差,有很多东西可以浓缩。但是,它可以工作,并且将满足分配的参数。在for循环中,变量“pace”需要随着循环的每次迭代增加30 public class MarathonTime { pu
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();
}
}
}
公共级马拉松时间{
公共静态void main(字符串[]args){
字符串名;
双倍距离;
整小时,分,秒;
双步速;
@抑制警告(“资源”)
扫描仪=新的扫描仪(System.in);
System.out.print(“您的名字是什么?”);
name=scanner.next();
System.out.print(“你今天跑了多少英里?”);
距离=扫描器.nextDouble();
系统输出打印(“花了多长时间?小时:”);
小时=scanner.nextInt();
系统输出打印(“分钟:”);
分钟=scanner.nextInt();
系统输出打印(“秒:”;
秒=scanner.nextInt();
速度=((小时*3600)+(分钟*60)+秒)/距离;
双程马拉松赛=配速*26.2;
双tenKPace=配速*6.2;
int paceMinutes,pacesonds;
步速分钟=(整数)步速/60;
步速秒数=(整数)步速%60;
国际马拉松小时、马拉松分钟、马拉松秒;
马拉松小时=(国际)马拉松比赛/3600;
马拉松分钟=(整数)(马拉松比赛成绩%3600)/60;
马拉松秒=(国际)马拉松比赛成绩%60;
整数十分钟,十秒钟;
十分钟=(整数)十分钟空间/60;
tenKSeconds=(int)tenKPace%60;
System.out.println(“Hello”+name);
System.out.print(“您的配速为”);TimeFormatPage(配速分钟、配速秒);
System.out.println();
System.out.print(“按此速率,您的马拉松时间将是”);timeFormatMarathon(马拉松小时、马拉松分钟、马拉松秒);
System.out.println();
System.out.print(“您的10K时间将是”);timeFormat10K(十分钟,十秒钟);
System.out.println();
System.out.println(“祝你训练顺利!”);
System.out.println();
对于(inti=1;i=3&&i我认为这就是您试图做的(非常简洁):
publicstaticvoidmain(字符串[]args){
int pace=100;//或初始化为任意值
对于(int i=0;i<10;i++){
//做点什么
pace=pace+30;//或等效地,pace+=30
}
}
将来,试着把你的问题简化成一个简单的问题。这样做的过程通常会帮助你自己解决问题,但至少会让别人很容易解决问题
另外,如果你知道你的程序写得不好,那就把它修好!写得好、简洁、模块化的程序更容易推理。凌乱、复杂的代码是很困难的。你花在调试上的时间会少一些,你也会得到更好的分数。你可以在循环中使用temp
变量来进行计算de>pace
不是任何合理定义的全局变量。我看不出有任何问题。pace
也是main()
方法中声明的局部变量。
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
}
}