保存用户名输入

时间:2014-02-12 05:55:36

标签: java variables

做平均成绩的作业,我想存储用户名。到目前为止工作正常,如果他们按1它要求输入名称,按2退出,按3它会提示错误并退出。

但我如何存储用户名?它是布尔值还是字符串?

我将变量保存为:String name; 从扫描程序读取的输入行是:name = dylan.nextString();

我似乎无法找到如何保存用户输入

import java.util.Scanner; 

public class Assignment3
{
    public static void main( String[] args ) 
    { 
        Scanner dylan = new Scanner( System.in );

        double homework;
        double quiz;
        double test;
        int choice;
        String name; <------ Here

        System.out.println( "Enter 1 or 2: \n 1 - Average grades \n 2 - Quit" ); 
        choice = dylan.nextInt();

        if ( choice == 1 ) 
        {   
            System.out.println( "What is your name?" );

            name = dylan.nextString();   <----- Here
        }


        if ( choice == 2 )
        {
            System.out.println( "Exiting program." );
        }
        else 
        {
            System.out.println( "Invalid response, exiting program." )  
        }
    }
}

3 个答案:

答案 0 :(得分:0)

使用nextLine()

代替nextString()类不存在的Scanner

所以这样:

name = dylan.nextLine();

是的,名称存储为String

boolean只有两个值:truefalse


同样改变这个:

if ( choice == 2 )

else if ( choice == 2 )

原因是因为您的代码是,它会检查choice == 1是否属实,然后检查是否choice == 2,即使choice == 1已经因为它没有'如果是 else

然后显然因为如果choice == 1那么它也不能是choice == 2所以它会进入else块并执行该代码,以及choice == 1的块1}}

答案 1 :(得分:0)

package com.project.stackoverflow;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Assignment3 {
    public static void main(String[] args) {
        Scanner dylan = new Scanner(System.in);

        double homework;
        double quiz;
        double test;
        int choice;
        String name;
        // Note the changes
        List<String> names = new ArrayList<String>();

        System.out.println("Enter 1 or 2: \n 1 - Average grades \n 2 - Quit");
        choice = dylan.nextInt();

        if (choice == 1) {

            System.out.println("What is your name?");
            name = dylan.next();
            //This list will have the name of the user. 
            names.add(name);
            System.out.println("Your Name--"+name);
            //System.out.println("Stored List--"+names);
        }

        else if (choice == 2) {

            System.out.println("Exiting program.");
        }

        else {
            System.out.println("Invalid response, exiting program.");
        }

        // close the Scanner object
        dylan.close();
    }
}

找到相同的代码。我对它做了一些改动。 用户名是存储在“名称”中的字符串。另一个List'名字'也是一样的。 试试吧。它应该工作正常。 虽然我已经为你编辑了这个,但在这种情况下,请使用switch case而不是if-else。希望能帮助到你。快乐编码:)

答案 2 :(得分:0)

您没有使用任何循环,因此我认为您只需要存储一个名称

试试这个

import java.util.Scanner;

public class Assignment3

{
    public static void main(String[] args) {
        Scanner dylan = new Scanner(System.in);

        double homework;
        double quiz;
        double test;
        int choice;
        String name = "";// Here

        System.out.println("Enter 1 or 2: \n 1 - Average grades \n 2 - Quit");
        choice = dylan.nextInt();

        if (choice == 1) {
            System.out.println("What is your name?");
            name = dylan.next(); // Here
        }

        else if (choice == 2) {

            System.out.println("Exiting program.");
        }

        else {
            System.out.println("Invalid response, exiting program.");
        }

        System.out.println("Thank You! The name entered is :" + name);

    }

}