Java方法赢得';t在我的LCM程序中返回答案

Java方法赢得';t在我的LCM程序中返回答案,java,if-statement,while-loop,break,lcm,Java,If Statement,While Loop,Break,Lcm,所以这个程序所做的就是使用Scanner类将两个数字作为输入,并计算这两个数字的最小公倍数。一切似乎都正常,除了lcm方法不会返回任何东西。我可能把我的“break”语句搞砸了,但我不知道还有什么其他方法可以摆脱嵌套在while循环中的if语句。还有一个问题:使用while(True)循环是好做法还是坏做法?因为我在这件事上看到了很多不同的观点。如果有人有更好的替代while(True)循环的方法,我很乐意听到。谢谢大家! // LCM Calculator // Author: Ethan H

所以这个程序所做的就是使用Scanner类将两个数字作为输入,并计算这两个数字的最小公倍数。一切似乎都正常,除了lcm方法不会返回任何东西。我可能把我的“break”语句搞砸了,但我不知道还有什么其他方法可以摆脱嵌套在while循环中的if语句。还有一个问题:使用while(True)循环是好做法还是坏做法?因为我在这件事上看到了很多不同的观点。如果有人有更好的替代while(True)循环的方法,我很乐意听到。谢谢大家!

// LCM Calculator
// Author: Ethan Houston
// Language: Java
// Date: 2013-12-27

import java.io.*;
import java.util.Scanner;

public class lcm {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("This is a LCM calculator\n");
        System.out.println("Enter your first number: ");
        int firstNumber = scanner.nextInt();
        System.out.println("Enter your second number: ");
        int secondNumber = scanner.nextInt();
        lcm(firstNumber, secondNumber);

    }

    public static int lcm(int one, int two) {
        int counter = Math.min(one, two);
        int initialCounter = counter;
        boolean running = true;
        while (running) {
            if (counter % one == 0 && counter % two == 0) {
                break;

            } else {
                counter += initialCounter;
            }

        }
        return counter;
    }
}

你确实还了一些东西,只是没有打印出来。试试看:

System.out.println(lcm(firstNumber, secondNumber));

你确实还了一些东西,只是没有打印出来。试试看:

System.out.println(lcm(firstNumber, secondNumber));

您没有打印返回的值

System.out.println(lcm(firstNumber, secondNumber));

您没有打印返回的值

System.out.println(lcm(firstNumber, secondNumber));
正如你所写的

lcm(firstnumber, secondnumber);
此方法将返回一个int类型的值,但在代码中,您没有在任何变量中获取返回值

所以,你应该这样写:

int variable=lcm(firstnumber, secondnumber);
正如你所写的

lcm(firstnumber, secondnumber);
此方法将返回一个int类型的值,但在代码中,您没有在任何变量中获取返回值

所以,你应该这样写:

int variable=lcm(firstnumber, secondnumber);

while(true)
将永远运行。您必须在某个时间点更改
running
的值。@ShashankKadne内部有一个中断。:)您没有对
lcm
方法返回的值执行任何操作。尝试打印它:
System.out.println(lcm(firstNumber,secondNumber))
@Leri:谢谢,我想我需要一些咖啡。:
如果有人有更好的while(True)循环的替代品,我很乐意听到他们
有但没有替代品:
while(!yourConditionForBreak){counter+=initialCounter;}
while循环的正确结构是
while(conditionwhenlopshouldexecute){}
而(true)
将永远运行。您必须在某个时间点更改
running
的值。@ShashankKadne内部有一个中断。:)您没有对
lcm
方法返回的值执行任何操作。尝试打印它:
System.out.println(lcm(firstNumber,secondNumber))
@Leri:谢谢,我想我需要一些咖啡。:
如果有人有更好的while(True)循环的替代品,我很乐意听到他们
有但没有替代品:
while(!yourConditionForBreak){counter+=initialCounter;}
while循环的正确结构是
while(conditionwhenlopshouldexecute){}
好吧,那我真的要把它打印出来?因此,它不像Python那样可以“返回”一个值?如果您希望将其输出到屏幕,则需要打印它。Java程序在默认情况下不会输出返回值。好吧,那么我实际上必须打印它?因此,它不像Python那样可以“返回”一个值?如果您希望将其输出到屏幕,则需要打印它。默认情况下,Java程序不输出返回值。