Java for循环';如果它们未定义,则为s体?

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

很抱歉,前面有个错误。这实际上是可行的,但我不清楚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 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不客气。如果答案对你合适,你可以按下复选标记并接受。