当前位置: 首页 > 知识库问答 >
问题:

我不明白为什么我得到这些错误在这个java代码[关闭]

印成天
2023-03-14
import java.util.Scanner;
    
class Day { 
    private String work; // 하루의 할 일을 나타내는 문자열
    public void set(String work) { this.work = work; }
    public String get() { return work; }
    public void show() {
        if (work == null) System.out.println("없습니다.");
        else System.out.println(work + "입니다.");
    }
}
public class MonthSchedule { // Day 객체배열과 적절한 필드, 메소드 작성, 입력(input), 보기(view), 끝내기(finish) 등의 3개의 기능을 작성
    
        Scanner scanner = new Scanner(System.in);
    
        MonthSchedule(int a) {} // 생성자
        
        Day [] march; // Day 배열에 대한 레퍼런스 변수 march 생성
        march = new Day[31]; // 31개의 레퍼런스 배열 생성
    
        for(int i = 0; i < march.length; i++) 
            march[i] = new Day();
    
        void run() {
            boolean exit = false; // 프로그램 종료를 위한 boolean 타입의 exit 선언
    
            while(true) { // menu 값이 3인 경우 exit = true 이므로 while문 종료 -> 프로그램 종료
                System.out.print("할일(입력:1, 보기:2, 끝내기:3) >>"); // 입력값에 따른 세 가지 메뉴
                int menu = scanner.nextInt();
                switch(menu) {
                    case 1:
                    input(menu);
                    break;
                    case 2:
                    view(menu);
                    break;
                    case 3:
                    finish(menu);
                    break;
                }
                if(exit) break;
            }
        }
       boolean input(int a) { // 할일을 입력하는 메서드
                System.out.print("날짜(1~31)?");
                int input1 = scanner.nextInt();
                System.out.print("할일(빈칸없이입력)?");
                String work = scanner.nextLine();
                march[input1].set(work);
                return false;
            }
        boolean view(int a) { // 입력한 할일을 확인하는 메서드
            System.out.print("날짜(1~31)?");
                int input2 = scanner.nextInt();
                System.out.print(input2 + "일의 할 일은 ");
                march[input2].show();
                return false;
        }
        boolean finish(int a) { // 프로그램을 종료시키는 메서드
            System.out.println("프로그램을 종료합니다.");
            return true;
        }
        public static void main(String[] args) {
            
            System.out.println("이번달 스케쥴 관리 프로그램.");
            MonthSchedule march = new MonthSchedule(31); // 3월달의 할 일
            march.run();
        }
        
    }
    
}

我想在三月计划一个月时间表,而不是使用静态成员。你不需要解释那些评论。“日”和“月时间表”都是类。

在我执行这段代码之前,它有两个错误。一个是“三月[]日”这句话这是一个错误。另一个是'for(int i=0;i

我不明白这些句子错在哪里。语法错误是什么?

共有1个答案

傅越
2023-03-14

看起来您是Java语言新手,代码中有很多结构格式错误。没有任何代码逻辑可以直接放在下,尝试使用一些IDE,它会告诉您有关错误的更多信息。只是格式化代码以避免任何错误,但按照您的意愿更正逻辑。

import java.util.Scanner;

class Day {
    private String work; // 하루의 할 일을 나타내는 문자열
    public void set(String work) { this.work = work; }
    public String get() { return work; }
    public void show() {
        if (work == null) System.out.println("없습니다.");
        else System.out.println(work + "입니다.");
    }
}

public class MonthSchedule { // Day 객체배열과 적절한 필드, 메소드 작성, 입력(input), 보기(view), 끝내기(finish) 등의 3개의 기능을 작성

    Scanner scanner = new Scanner(System.in);
    Day[] march; // Day 배열에 대한 레퍼런스 변수 march 생성

    MonthSchedule(int a) { // 생성자

        march = new Day[31]; // 31개의 레퍼런스 배열 생성

        for (int i = 0; i < march.length; i++)
            march[i] = new Day();
    }

        void run () {
            boolean exit = false; // 프로그램 종료를 위한 boolean 타입의 exit 선언

            while (true) { // menu 값이 3인 경우 exit = true 이므로 while문 종료 -> 프로그램 종료
                System.out.print("할일(입력:1, 보기:2, 끝내기:3) >>"); // 입력값에 따른 세 가지 메뉴
                int menu = scanner.nextInt();
                switch (menu) {
                    case 1:
                        input(menu);
                        break;
                    case 2:
                        view(menu);
                        break;
                    case 3:
                        finish(menu);
                        break;
                }
                if (exit) break;
            }
        }

    boolean input(int a) { // 할일을 입력하는 메서드
        System.out.print("날짜(1~31)?");
        int input1 = scanner.nextInt();
        System.out.print("할일(빈칸없이입력)?");
        String work = scanner.nextLine();
        march[input1].set(work);
        return false;
    }
    boolean view(int a) { // 입력한 할일을 확인하는 메서드
        System.out.print("날짜(1~31)?");
        int input2 = scanner.nextInt();
        System.out.print(input2 + "일의 할 일은 ");
        march[input2].show();
        return false;
    }
    boolean finish(int a) { // 프로그램을 종료시키는 메서드
        System.out.println("프로그램을 종료합니다.");
        return true;
    }
    public static void main(String[] args) {

        System.out.println("이번달 스케쥴 관리 프로그램.");
        MonthSchedule march = new MonthSchedule(31); // 3월달의 할 일
        march.run();
    }

}
 类似资料:
  • 错误(25,1):PLS-00103:遇到符号“EXEC” 放下桌上的学生;提交;

  • 我是Python的初学者。我合并了两个之后,我试图用另一个列值更改一个列的'未分配'值。我不能那样做。如果我使用,那么我可以更改。 我从页面上抓取了一个表,然后修改了数据框中的数据。 pip安装lxml 这是我使用的代码。 我希望将邻域值更改为自治区值。 我得到了这个错误。 KeyError回溯(最近一次调用上次)/usr/local/lib/python3。6/数据包/熊猫/核心/索引/基础。p

  • {“error”:“invalid_scope”,“error_description”:“AADSTS70011:为输入参数”scope“提供的值无效。作用域 https://graph.microsoft.com/User.Read https://graph.microsoft.com/User.ReadWrite https://graph.microsoft.com/User.ReadB

  • 问题内容: 我正在从我的一个类中执行Java二进制文件,并且抛出ClassNotFoundException: Geoline类位于/home/geo/Geoline.java。关键是,无论我位于文件系统中的哪个位置,如果我手动执行相同的命令,都将执行该类。使用Runtime.getRuntime()。exec执行二进制文件时,为什么不会发生相同的事情? 编辑:这是在verbose标记上生成的输出

  • 当用户键入以下内容的答案时:system.out.println(“键入数字”); 它不会继续到我的代码的下一部分。

  • 我试图解决这个问题:第三个最大数量 但我犯了这个错误 第4行:Char 37:运行时错误:有符号整数溢出:-9223372036854775808-10不能在类型“long long”(solution.cpp)摘要中表示:UndefinedBehaviorSanitizer:undefined behavior prog_joined。cpp:13:37 这是我的代码 有人能告诉我这个错误到底意