Java 不在循环中打印某个元素

Java 不在循环中打印某个元素,java,Java,因此,我有以下代码: public class MyClass { public static void main(String args[]) { Scanner reader = new Scanner(System.in); System.out.println("Enter the upper limit: "); int input = reader.nextInt(); int i = 0;

因此,我有以下代码:

public class MyClass {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);

        System.out.println("Enter the upper limit: ");
        int input = reader.nextInt();

        int i = 0;
        int power = 1;
        long sum;

        while (i <= input) {
            System.out.print(power + " + ");
            sum = power + power;
            power = power * 2;
            i++;

            if (power > input) {
                System.out.print(" = " + sum);
                System.exit(0);
            }
        }
    }
}

我想去掉最后一个“+”,使它看起来像一个实际的方程式。

您可以打印并在循环外增加
功率,然后颠倒打印顺序:

System.out.print(power++);
while (i <= input)
{

   System.out.print(" + " + power );
   //...
}

您可以在循环外打印并增加
功率
,然后颠倒打印顺序:

System.out.print(power++);
while (i <= input)
{

   System.out.print(" + " + power );
   //...
}

生成字符串,然后将其切掉,而不是打印。我更改了您的while循环,使其完全符合以下要求:

...
StringBuilder powerLine = new StringBuilder();
while (i <= input) {

    powerLine.append(power + " + ");
    //System.out.print(power + " + ");

    sum = power + power;
    power = power * 2;

    i++;

    if (power > input) {
        System.out.print(powerLine.substring(0, powerLine.length() - 3));
        System.out.print(" = " + sum);
        System.exit(0);
    }
}
。。。
StringBuilder powerLine=新的StringBuilder();
while(我输入){
System.out.print(powerLine.substring(0,powerLine.length()-3));
系统输出打印(“=”+总和);
系统出口(0);
}
}

生成字符串,然后将其切掉,而不是打印。我更改了您的while循环,使其完全符合以下要求:

...
StringBuilder powerLine = new StringBuilder();
while (i <= input) {

    powerLine.append(power + " + ");
    //System.out.print(power + " + ");

    sum = power + power;
    power = power * 2;

    i++;

    if (power > input) {
        System.out.print(powerLine.substring(0, powerLine.length() - 3));
        System.out.print(" = " + sum);
        System.exit(0);
    }
}
。。。
StringBuilder powerLine=新的StringBuilder();
while(我输入){
System.out.print(powerLine.substring(0,powerLine.length()-3));
系统输出打印(“=”+总和);
系统出口(0);
}
}

只需像下面那样更改行即可


System.out.print(电源+(电源*2只需按以下方式更改行


System.out.print(power+(power*2只需在else语句中添加打印
++

 Scanner reader = new Scanner(System.in);

    System.out.println("Enter the upper limit: ");
    int input = reader.nextInt();

    int i = 0;
    int power = 1;
    long sum;

    while (i <= input) {
        System.out.print(power);
        sum = power + power;
        power = power * 2;
        i++;

        if (power > input) {
            System.out.print(" = " + sum);
            System.exit(0);
        }else {
            System.out.print(" + ");
        }
    }

只需在else语句中添加打印
+

 Scanner reader = new Scanner(System.in);

    System.out.println("Enter the upper limit: ");
    int input = reader.nextInt();

    int i = 0;
    int power = 1;
    long sum;

    while (i <= input) {
        System.out.print(power);
        sum = power + power;
        power = power * 2;
        i++;

        if (power > input) {
            System.out.print(" = " + sum);
            System.exit(0);
        }else {
            System.out.print(" + ");
        }
    }

只需更改行一次==>.System.out.print(power+)(power*2意味着更改行一次==>.System.out.print)(power+)(power*2我不想将power的第一次迭代显示两次。例如,在您的示例“1+1”中,我不想将power的第一次迭代显示两次