gpt4 book ai didi

java - 由于括号,程序无法编译

转载 作者:行者123 更新时间:2023-11-29 06:48:48 26 4
gpt4 key购买 nike

我正在用 Java 编写一个游戏,在编译和调试之后,唯一的错误是它在解析时到达了文件末尾。

我查看并确保所有括号都平衡。我意识到我少了一个右括号,所以我在应该的地方加了一个。再次编译之后,错误就更多了,好像是括号错位了。

下面是第 94 行没有括号的版本。我知道整个文件不适合发布,但问题并不特定于我所知道的几行代码。

import java.util.Scanner;
import java.util.Random;
public class NATO{

public static void main(String[] args){

float finalScore = 0;
float numberCompleted = 0;
float numberCorrect = 0;
int gameLength = 10;
boolean playing = true;

String A = "Alpha";
String B = "Beta";
String C = "Charlie";
String D = "Delta";
String E = "Echo";
String F = "Foxtrot";
String G = "Golf";
String H = "Hotel";
String I = "India";
String J = "Juliett";
String K = "Kilo";
String L = "Lima";
String M = "Mike";
String N = "November";
String O = "Oscar";
String P = "Papa";
String Q = "Quebec";
String R = "Romeo";
String S = "Sierra";
String T = "Tango";
String U = "Uniform";
String V = "Victor";
String W = "Whiskey";
String X = "Xylophone";
String Y = "Yankee";
String Z = "Zulu";

while(playing == true) {

try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Welcome to the NATO speed game! Press [ENTER] to start...");
}

catch (IOEXCEPTION ioe) {
System.out.println("Index out of bounds exception raised ^");
}

System.out.println("Game starting in 3...");
System.out.println("Game starting in 2...");
System.out.println("Game starting in 1...");

while(numberCompleted <= gameLength){
int rnd = Random().nextInt(args.length);
String word = args[rnd];
System.out.println(word.charAt(1));
System.out.println(": ");
String answerIncludingSpaces = System.in.nextLine;
String answerUncapitalized = answerIncludingSpaces.replaceAll("\\s+", "");
String answer = answerUncapitalized.charAt(1).toUpperCase;

if(answer != word) {
float numberCompleted = numberCompleted + 1;
}

else if(answer == word){
float numberCorrect = numberCorrect + 1;
}

else {
System.out.println("Something went wrong. Please restart the game.");
break;
}
}

float finalScore = (numberCorrect / numberCompleted);
System.out.println("Game over.");
System.out.println("Your score was " + finalScore + ". Would you like to play again? Y/N");

if(System.nextLine.toUpperCase == "Y") {
continue;
}

else {
system.out.println("Thank you for playing!");
break;
}

}

}
}

当我在第 94 行添加括号时显示的错误消息:

https://pastebin.com/6E9DNdkA

最佳答案

您缺少对 InputStreamReaderBufferedReader 的导入。 systemIOEXCEPTION 的大小写不正确(IOException 需要在拼写正确时导入)。你有一些你没有在后面加上括号的方法(例如第 83 行的 nextLine)。您需要在第 57 行的 Random() 之前放置 new

由于 finalScore 已经在第 7 行声明为 float,您需要在第 79 行删除它之前的 float。您应该仅在创建变量时声明变量的类型。在第 79 行的第二个 float 声明中,它试图创建第二个 finalScore 变量,但失败了,因为不能有 2 个同名变量。删除该行上的 float 声明将使其正确修改现有的 finalScore 变量。同样的想法也适用于其他地方,例如第 66 行的 numberCompleted 和第 70 行的 numberCorrect

此外,在第 63 行,您需要执行 Character.toUpperCase(answerUncapitalized.charAt(1))。当前,您正在尝试对 char 调用 toUpperCase,而基元没有方法,因此这是不正确的。

但实际上,您应该使用可以帮助您完成此操作的应用程序,例如 Eclipse。我将其复制并粘贴到 Eclipse 中,这使得查看问题所在变得非常容易,并为其中一些问题提出了适当的修复建议。

关于java - 由于括号,程序无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56301149/

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