gpt4 book ai didi

java - 如何将 if/else if 代码中的整数转入该代码外部的整数? (java)

转载 作者:行者123 更新时间:2023-12-01 19:53:28 26 4
gpt4 key购买 nike

我正在尝试编写一个可以解决指数问题的代码,并且可以解决整数输入和单词输入(即一、二...等)的指数问题。我几乎已经弄清楚了整数部分,但是我被困在“单词输入”部分。主要是,我的代码中单词部分的最后部分(int base = y,exponent = z),其中我可以计算指数不起作用,因为无法从 if/else if 语句中提取 y 和 z

我如何编写代码,以便 int base = y, exponent = z 可以从各自的 if/else if 代码中提取?

非常感谢!

public static void main(String[] args) {
Scanner choice = new Scanner(System.in);
System.out.println("Enter 1 for Alphabetical Input, 2 for numerical input:");
int solution = choice.nextInt();

if(solution == 1) {
for(int i=1; i<=100;i++) {
Scanner words = new Scanner(System.in);

System.out.print("Enter your base");
String x = words.toString();
String x1 = "zero";
String x2 = "one";
String x3 = "two";
String x4 = "three";
String x5 = "four";
String x6 = "five";
String x7 = "six";
String x8 = "seven";
String x9 = "eight";
String x10 = "nine";
String x11 = "ten";

if(x == x1) {
int y = 0;
}
else if(x == x2) {
int y = 1;
}
else if(x == x3) {
int y = 2;
}
else if(x == x4) {
int y = 3;
}
else if (x == x5) {
int y = 4;
}
else if (x == x6) {
int y = 5;
}
else if (x == x7) {
int y = 6;
}
else if (x == x8) {
int y = 7;
}
else if (x == x9) {
int y = 8;
}
else if (x == x10) {
int y = 9;
}
else if (x == x11) {
int y = 10;
}
else {
System.out.println("I can't read that!");
}
System.out.println("Enter your exponent");

Scanner exponent = new Scanner(System.in);

String a = exponent.toString();


if(a == x1) {
int z = 0;
}
else if(a == x2) {
int z = 1;
}
else if(a == x3) {
int z = 2;
}
else if(a == x4) {
int z = 3;
}
else if (a == x5) {
int z = 4;
}
else if (a == x6) {
int z = 5;
}
else if (a == x7) {
int z = 6;
}
else if (a == x8) {
int z = 7;
}
else if (a == x9) {
int z = 8;
}
else if (a == x10) {
int z = 9;
}
else if (a == x11) {
int z = 10;
}
else {
System.out.println("I can't read that!");
}
int base = y, exponents = z; //this does not work, y and z aren't pulled
double result = Math.pow(base, exponents);
}

}
else if(solution ==2 ) {
for(int i=1;i<=100;i++){
Scanner number = new Scanner(System.in);

System.out.print("Enter your base:");

int x = number.nextInt();

Scanner up = new Scanner(System.in);

System.out.print("Enter your exponent:");

int y = up.nextInt();

int base = x, exponent = y;
double result = Math.pow(base, exponent);

System.out.println("Answer = " + result);
}
}
else {
System.out.println("Could not read input");
}
}

}

最佳答案

将它们声明为 @Shuang Li在 for 循环前面说,否则 y 和 z 仅在相关 if 中可见。

除此之外,您不应该使用 if (x == x1)因为这会检查您的输入是否等于 String x1 的内存地址,因此会打印出“我无法读取!”。要检查字符串是否相等,您需要使用 if (x.equals(x1)) .

使用String x = words.toString();进一步阅读用户的输入没有做您希望它做的事情,因为它立即跳到 if 部分传递 nullString x 。相反,你应该使用

String x = words.next();String x = words.nextLine();

.toString(); 不同方法.next();.nextLine();Scanner 的方法因此他们将等待任何输入,只有在获得输入后,代码才会被进一步执行。

所以这将是您的目标:

public static void main(String[] args) {
Scanner choice = new Scanner(System.in);
System.out.println("Enter 1 for Alphabetical Input, 2 for numerical input:");
int solution = choice.nextInt();

int y = 0;
int z = 0;

if (solution == 1) {
for (int i = 1; i <= 100; i++) {
Scanner words = new Scanner(System.in);

System.out.print("Enter your base");
String x = words.next();
String x1 = "zero";
String x2 = "one";
String x3 = "two";
String x4 = "three";
String x5 = "four";
String x6 = "five";
String x7 = "six";
String x8 = "seven";
String x9 = "eight";
String x10 = "nine";
String x11 = "ten";

if (x.equals(x1)) {
y = 0;
} else if (x.equals(x2)) {
y = 1;
} else if (x.equals(x3)) {
y = 2;
} else if (x.equals(x4)) {
y = 3;
} else if (x.equals(x5)) {
y = 4;
} else if (x.equals(x6)) {
y = 5;
} else if (x.equals(x7)) {
y = 6;
} else if (x.equals(x8)) {
y = 7;
} else if (x.equals(x9)) {
y = 8;
} else if (x.equals(x10)) {
y = 9;
} else if (x.equals(x11)) {
y = 10;
} else {
System.out.println("I can't read that!");
}
System.out.println("Enter your exponent");

Scanner exponent = new Scanner(System.in);

String a = exponent.next();

if (a.equals(x1)) {
z = 0;
} else if (a.equals(x2)) {
z = 1;
} else if (a.equals(x3)) {
z = 2;
} else if (a.equals(x4)) {
z = 3;
} else if (a.equals(x5)) {
z = 4;
} else if (a.equals(x6)) {
z = 5;
} else if (a.equals(x7)) {
z = 6;
} else if (a.equals(x8)) {
z = 7;
} else if (a.equals(x9)) {
z = 8;
} else if (a.equals(x10)) {
z = 9;
} else if (a.equals(x11)) {
z = 10;
} else {
System.out.println("I can't read that!");
}
int base = y, exponents = z; // this does not work, y and z aren't pulled
double result = Math.pow(base, exponents);
System.out.println("Answer = " + result);
}

} else if (solution == 2) {
for (int i = 1; i <= 100; i++) {
Scanner number = new Scanner(System.in);

System.out.print("Enter your base:");

int x = number.nextInt();

Scanner up = new Scanner(System.in);

System.out.print("Enter your exponent:");

y = up.nextInt();

int base = x, exponent = y;
double result = Math.pow(base, exponent);

System.out.println("Answer = " + result);
}
} else {
System.out.println("Could not read input");
}
}

关于java - 如何将 if/else if 代码中的整数转入该代码外部的整数? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com