【问题标题】:Why won't my program compile?为什么我的程序无法编译?
【发布时间】:2014-09-13 01:30:40
【问题描述】:
import java.util.Scanner;

public class CodeSnippetm01 {
    public static void main(final String[] args, int len) {
        //0. Variable declarations.
        String greeting = "Welcome to CST242!";
        String question1 = "What is your name?:";

        //1. Print Statement.

        System.out.println(greeting);
        System.out.println(question1);

        Scanner keyboard = new Scanner(System.in);
        len = input.length();
        //2. Code for prompt and input
        while (len > 0) {

            String input = keyboard.nextLine();

            System.out.println("String Length is : " + len);

            //3. Loop code and loop body.
        }
        //4. Multiway If block.
    }
}

我必须创建一个循环,在每一行显示人名的单个字符,使用 Scanner 方法输入一个表示该人年龄的整数 2,然后使用多路 if-else 语句打印以下内容(如图所示在伪代码中):

If the person is >= 90, print `({name from 2} +“was born before 1923.”)`. 

Else if person >=75, print `({name from 2} +“was born born before 1938.”)`. 

Else if person >=50, print `({name from 2} +“was born born before 1963.”)`. 

Else if person >=25, print `({name from 2} +“was born born before 1988.”)`. 

Else print `({name from 2} +“was born born sometime after 1988.”)`

到目前为止,这就是我所拥有的......欢迎任何建议或帮助:-)

【问题讨论】:

  • 不要问我们“为什么它不编译?”,而是提供实际编译器错误消息。
  • 您的代码中存在许多问题。但是,您将需要学习自己找到这些东西。首先阅读编译错误消息。请不要指望 SO 会为您提供一对一的辅导。 (或“完成我的作业”服务。)如果你需要这种帮助,你应该和你的讲师/老师谈谈。
  • @eebbesen 格式很好,但请不要在代码中添加诸如 final 之类的关键字,因为它们可能会影响编译器(我可以理解您为什么在代码上点击“清洁”: ) )
  • @owlstead 感谢您的关注。一个很好的提醒,确保在使用 IDE 为 SO 格式化内容时禁用我的正常保存操作 :)。
  • 您是否考虑过使用do/while 循环而不是while?我假设条件len > 0 存在,以便用户可以通过输入空行退出程序。如果是这种情况,在循环底部而不是顶部检查它更有意义;这就是 do/while 循环所做的。

标签: java string loops


【解决方案1】:

input 在使用之前未定义。使用以下代码重试。

import java.util.Scanner;

public class CodeSnippetm01 {

    public static void main(String[] args, int len) {
        //0. Variable declarations.
        String greeting = "Welcome to CST242!";
        String question1 = "What is your name?:";

        //1. Print Statement.
        System.out.println(greeting);
        System.out.println(question1);
        Scanner keyboard = new Scanner(System.in);
        String input = keyboard.nextLine();
        len = input.length();
        //2. Code for prompt and input
        while (len > 0) {
            input = keyboard.nextLine();
            System.out.println("String Length is : " + len);
            //3. Loop code and loop body.
        }
        //4. Multiway If block.
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多