这是我制作的代码,有人可以解释为什么输出保持0.0?
(我试图创建一个将二进制转换为十进制的程序,我知道这可以通过其他方式在java中轻松完成)
package main;
import java.util.Scanner;
public class Class1 {
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int length = input.length();
double output=0.0;
String reverse = new StringBuffer(input).reverse().toString();
for (int i=0; i==length; i+=1){
switch(reverse.charAt(i)){
case '1': output = (output + (Math.pow(2, i)));break;
case '0': break;
}
}
System.out.println(output);
}
}
答案 0 :(得分:4)
除非length == 0
,否则for循环永远不会执行。
你的意思可能是:
for (int i=0; i<length; i+=1){
此外,无需使用Math.pow(2, i)
- 您可以使用1 << i
并将其全部保存为整数。