Java for循环';如果它们未定义,则为s体?
很抱歉,前面有个错误。这实际上是可行的,但我不清楚for循环中涉及到result的值Java for循环';如果它们未定义,则为s体?,java,for-loop,if-statement,base,exponent,Java,For Loop,If Statement,Base,Exponent,很抱歉,前面有个错误。这实际上是可行的,但我不清楚for循环中涉及到result的值 import java.util.Scanner; public class PowerLoop { public static void main(String [] args) { exponent(1); } public static int exponent(int result) // defining method for raising base to
import java.util.Scanner;
public class PowerLoop
{
public static void main(String [] args)
{
exponent(1);
}
public static int exponent(int result) // defining method for raising base to power
{
int base; // defining user input variables
int power;
{
Scanner reader = new Scanner(System.in); // scanner is called reader
System.out.println("Please enter the base."); // first input is base
base = reader.nextInt();
System.out.println("Please enter the exponent.");
power = reader.nextInt();
{
for (int i = 1; i <= power; i++)
{
result = base * result;
}
System.out.println("Result: " + base + " ^ " + power + " = " + result);
return 0;
}
import java.util.Scanner;
公共类PowerLoop
{
公共静态void main(字符串[]args)
{
指数(1);
}
公共静态整数指数(整数结果)//将基数提升为幂的定义方法
{
int base;//定义用户输入变量
整数幂;
{
Scanner reader=新扫描仪(System.in);//扫描仪称为读卡器
System.out.println(“请输入基数”);//第一个输入是基数
base=reader.nextInt();
System.out.println(“请输入指数”);
power=reader.nextInt();
{
for(int i=1;i在for循环中,变量result是在for循环作用域之外创建的。实际上,您只是在更改已创建的结果变量。如果您试图在for循环中创建新变量,例如“newResult=base*result”,如果您尝试在for循环之外使用它,它将失败。下面是一个优化代码的简单示例:
//Start getting the proper variables in your MAIN method.
Scanner reader = new Scanner(System.in);//create scanner here.
System.out.println("Enter a base number: ");
int base = reader.nextInt();
System.out.println("Enter an exponent: ");
int power = reader.nextInt();
out.println(exponent(base, power));
然后您可以优化指数法,如下所示:
public static int exponent(int base, int power) {
double r = Math.pow(base, power);
int result = (int)r;
return result;
}
现在,对于您的具体问题,让我们想象一下将示例中的for循环更改为以下内容,这是重要的一点:
for(int i = 1; i <= power; i++)
{
int newResult = base * result;
}
System.out.println("Result: " + base + " ^ " + power + " = " + newResult);
for(int i=1;我是这样想的:如果我在程序中键入2作为基,键入3作为幂,那么我发现int i这段代码不是有效的java(例如,太多的大括号)但是结果
在方法指数
的参数中声明,然后在for
循环中使用。但是请将代码修复为最小的、可验证的示例,因为没有对进行检查,也请努力发布格式良好、缩进正确的代码。这将导致1)使您的代码更易于他人阅读,以及2)帮助您减少不匹配的大括号之类的错误。我不允许在Java classI中使用Math.pow。我不允许使用Math.pow…@ErinLeal这很好。解决方案的最大值仍然是一样的。for循环可以工作,因为您在作用域之前定义了result作为参数。这就是为什么您可以在作用域之外使用result var o谢谢你的回复,我很感激it@Erin不客气。如果答案对你合适,你可以按下复选标记并接受。