我是一名相当新的 Java 程序员,目前正在学习在线教程来提高我的技能。我在教程中找到了以下代码示例,看起来应该可以运行,但是当我在 Eclipse 中运行代码时遇到了许多错误。
这是我的第一个使用案例的程序,但是我很确定我有正确的语法也许有人可以指出我的错误?另外,令我惊讶的是,编译器抱怨“System.out.println(“你确定(y - 是,n - 否)吗?”);“
我在第 3、4、7、8、10、11、15 行收到错误。请有人告诉我为什么我的程序无法运行?
class Certainty
{
System.out.println ("Are you sure (y - yes, n - no)?");
int ch = System.in.read ();
switch (ch)
{
case 'Y':
case 'y': System.out.println ("I am sure.");
break;
case 'N':
case 'n': System.out.println ("I am not sure.");
break;
Default : System.out.println ("Incorrect choice.");
}
}
/* 感谢你们所有有用的回复,我正在慢慢开始了解 Java,我真的很喜欢它,也很喜欢我的问题得到如此快速的回答,你们太棒了。**/
这是我的第一个使用案例的程序,但是我很确定我有正确的语法也许有人可以指出我的错误?
围绕大小写的大多数实际语法都是正确的,除了它是
default:
而不是 Default:
(大小写很重要)。
但是您的班级在班级内部立即有分步代码。你不能那样做。它必须位于初始值设定项或(更常见)构造函数和/或方法内部。
另外,
System.in.read()
可能会抛出一个IOException
,您必须声明您的方法抛出或捕获它。在下面的例子中,我抓住了它并只是说它发生了。通常你会做一些比这更有用的事情,但对于这种快速测试来说这是很好的。
import java.io.IOException; // <=== Tell the compiler we're going to use this class below
class Certainty
{
public static final void main(String[] args) {
try { // `try` starts a block of code we'll handle (some) exceptions for
System.out.println ("Are you sure (y - yes, n - no)?");
int ch = System.in.read ();
switch (ch)
{
case 'Y':
case 'y': System.out.println ("I am sure.");
break;
case 'N':
case 'n': System.out.println ("I am not sure.");
break;
default : System.out.println ("Incorrect choice.");
}
}
catch (IOException e) { // <== `catch` says what exceptions we'll handle
System.out.println("An exception occurred.");
}
}
}
在那里,我已将您的代码移至与命令行 Java 应用程序一起使用的标准
main
方法中,并修复了 Default
问题。
您应该将这些行放在
main
方法或任何其他方法中。class Certainty
{
public static void main (String[] args)
{
System.out.println ("Are you sure (y - yes, n - no)?");
try
{
int ch = System.in.read ();
switch (ch)
{
case 'Y':
case 'y': System.out.println ("I am sure.");
break;
case 'N':
case 'n': System.out.println ("I am not sure.");
break;
default : System.out.println ("Incorrect choice.");
}
}//try
catch (IOException e)
{
System.out.println("Error reading from user");
}//catch
}//end of main
}