【问题标题】:How do i make my answer print correctly in java我如何在java中正确打印我的答案
【发布时间】:2020-05-27 18:17:13
【问题描述】:

我遇到了一个问题,当我的程序打印 (base)^0= 时,它没有打印答案 (1) (我支持输出示例,因为我只对输出的第一行有问题)

预期输出:

2^0=1
2^1=2
2^2=2*2=4
2^3=2*2*2=8
2^4=2*2*2*2=16

实际输出:

> 2^0=
> 2^1=2=2
> 2^2=2*2=4
> 2^3=2*2*2=8
> 2^4=2*2*2*2=16
 

代码:

else if(option == 2){
        base = Input.nextInt();
        
        for(int i = 0; i<10; i+=1){
            System.out.print(base+"^"+i+"=");
            for(int j = 0; j < i; j+=1){
                 if(j != i -1){
                System.out.print(base+"*");
                }else{
                    
                        System.out.format(base+"="+"%.0f",Math.pow(base,i));
                    
                }
                
            }
        
            System.out.println("");
        }
        
    }

【问题讨论】:

  • 不要介意其他输出问题,我可以解决这些问题,我只是不知道为什么它没有在第一行放 1
  • 嗨@andreas,你的for循环for(int j = 0; j &lt; i; j+=1){永远不会为i = 0执行,因为你正在检查j = 0是否小于i = 0,因此它在最后打印空字符串系统输出

标签: java math exponent


【解决方案1】:

第一轮i = 0,不进入内层for循环,进入条件为j &lt; i,即0 &lt; 0 => false

【讨论】:

  • 哦,好的,我将如何解决这个问题
  • 一个超级肮脏的方式可能是一个简单的if (i == 0) print("1")在正确的位置,即在内部for旁边,无论是之前还是之后:)
猜你喜欢
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 2021-02-13
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
相关资源
最近更新 更多