Nooby Java 程序员对输出(构造函数)感到困惑

问题描述 投票:0回答:2

我是一名相当新的 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,我真的很喜欢它,也很喜欢我的问题得到如此快速的回答,你们太棒了。**/

java input switch-statement
2个回答
4
投票

这是我的第一个使用案例的程序,但是我很确定我有正确的语法也许有人可以指出我的错误?

围绕大小写的大多数实际语法都是正确的,除了它是

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
问题。


1
投票

您应该将这些行放在

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
 } 
© www.soinside.com 2019 - 2024. All rights reserved.