gpt4 book ai didi

java - 类型不匹配 : cannot convert from Scanner to boolean

转载 作者:行者123 更新时间:2023-11-30 04:04:10 25 4
gpt4 key购买 nike

我正在制作一个基本的货币转换器,它接受用户选择的货币并转换金额,显然还没有完成,因为我遇到了这个问题。帮助和指示将不胜感激。

import java.util.Scanner;

class Converter {
public static void main(String args[]){
double PLN;
double GDP;
System.out.println("Which currency do you wish to convert?");
System.out.println("Press a corresponding number");
System.out.println("1. Great British Pound (GDP) £");
System.out.println("2.Polish zloty (PLN) zl");

Scanner option = new Scanner(System.in);

if (option = 1){

}
}
}

错误

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Type mismatch: cannot convert from Scanner to boolean Type mismatch: cannot convert from int to Scanner at Converter.main(Converter.java:14)

最佳答案

应该更像

Scanner option = new Scanner(System.in);
String userInput = option.nextLine();

if (userInput.equals("1")){
// ...
}

这里有一些错误:

  1. 相等性测试是 ==,而不是 =。您正在尝试将 1 分配给 Scanner 对象。
  2. 扫描仪本身实际上并不是一个字符串。您需要对其调用 readLine
  3. 即使 Scanner 是字符串,您也无法将 Stringint 进行比较。
  4. 您需要对字符串使用 .equals,因为 Java 中的 == 始终按引用进行比较,而不是按值进行比较。 == 基本上意味着“这两个对象是完全相同的对象”,而不是“这两个对象看起来是否相同。”

另一种方法是使用nextInt:

Scanner option = new Scanner(System.in);

while (!option.hasNextInt()) {
System.out.println("Bad input"); // print an error message
option.nextLine(); // clear bad input
}
int userInput = option.nextInt();
if (userInput == 1) {
// ...
}

另请注意,对于以下情况,您可以使用 switch 语句:

int userInput = option.nextInt();
switch(userInput) {
case 1:
// the user input was 1
break;
case 2:
// it was 2
break;
// ...
default:
// it was not any of the cases
}

您可以在字符串上使用switch,但仅限于 Java 7 或更高版本。

关于java - 类型不匹配 : cannot convert from Scanner to boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21176348/

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