0 java
所以这是我使用的代码:
System.out.println("Create a name.");
name = input.nextLine();
System.out.println("Create a password.");
password = input.nextLine();
Run Code Online (Sandbox Code Playgroud)
但是当它到达这一点时,它只是说"创建一个名字".和"创建密码".两个在同一时间然后我必须输入一些东西.所以它基本上是跳过我需要键入字符串的Scanner部分.在"创建一个名字"之后.和"创建密码".是打印出来的,然后输入,名称和密码都改为我输入的内容.如何解决这个问题?
这是全班.我只是测试所以它实际上不是一个程序:
package just.testing;
import java.util.Scanner;
public class TestingJava
{
static int age;
static String name;
static String password;
static boolean makeid = true;
static boolean id = true;
public static void main(String[] args){
makeid(null);
if(makeid == true){
System.out.println("Yay.");
}else{
}
}
public static void makeid(String[] args){
System.out.println("Create your account.");
Scanner input = new Scanner(System.in);
System.out.println("What is your age?");
int age = input.nextInt();
if(age<12){
System.out.println("You are too young to make an account.");
makeid = false;
return;
}
System.out.println("Create a name.");
name = input.nextLine();
System.out.println("Create a password.");
password = input.nextLine();
return;
}
}
Run Code Online (Sandbox Code Playgroud)
抱歉我的语法不好.我不是英国人,所以我很难解释这一点.
zw3*_*324 10
nextInt()吃了输入数字而不是EOLN:
Create your account.
What is your age?
123 <- Here's actually another '\n'
Run Code Online (Sandbox Code Playgroud)
所以在创建名称之后第一次调用nextLine()接受它作为输入.
System.out.println("Create a name.");
name = input.nextLine(); <- This just gives you "\n"
Run Code Online (Sandbox Code Playgroud)
用户Integer.parseInt(input.nextLine())或在读取数字后添加另一个input.nextLine()将解决此问题:
int age = Integer.parseInt(input.nextLine());
Run Code Online (Sandbox Code Playgroud)
要么
int age = input.nextInt();
input.nextLine()
Run Code Online (Sandbox Code Playgroud)
另请参阅此处查看重复的问题.
| 归档时间: |
|
| 查看次数: |
19496 次 |
| 最近记录: |