java - For循环在第二次后不执行第一条命令

标签 java loops for-loop

这是我的代码:

import java.util.Scanner;

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

    char pickup;
    char size;
    char type;
    String name;

    double cost=0.0;
    int i;


    for (i=0; i<2; i++)
    {
    System.out.println("What is your name?");
    name = input.nextLine();

    System.out.println("size of pizza: ");
    size =  input.next().charAt(0);

    System.out.println("type of pizza: ");
    type = input.next().charAt(0);

    System.out.println("pick up or delivery?");
    pickup = input.next().charAt(0);


    if(size == 'S' || type == 'V') {cost = 10.0;}
    else if(size == 'M' || type == 'V') {cost = 12.25;}
    else if(size == 'L' || type == 'V') {cost = 14.50;}
    else if(size == 'S' || type == 'C') {cost = 7.0;}
    else if(size == 'M' || type == 'C') {cost = 8.0;}
    else if(size == 'L' || type == 'C') {cost = 9.0;}


    if(pickup == 'D'){
    cost=cost+1.50;
    System.out.println("Name: "+name+". Your cost is: "+cost);}
    else { 
    System.out.println("Name: "+name+". Your cost is: "+cost);}


    } 

}

}

我的代码中有一个 for 循环,它询问名称、尺寸、类型和取件。第一次运行时,它要求输入所有字段,但第二次,名称字段由于某种原因不允许我输入名称,它打印“你的名字是什么?”但它不让我输入名字...?有人能告诉我为什么吗? 谢谢。

这是它的样子:http://i.stack.imgur.com/eb1BA.jpg

最佳答案

因为

input.next()

不使用换行符,这些字符会传递回您的循环并且不允许输入值。您需要添加:

for (i = 0; i < 2; i++) {
   // existing input.next() statements in here
  ...

   input.nextLine();
}

for 循环的末尾修复。

关于java - For循环在第二次后不执行第一条命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925660/

相关文章:

java - 在kotlin中获取两个ISO格式时间之间的分钟数

java - fragment 删除问题

java - JButton 的 2D 数组未出现

Excel VBA : Screen doesn't refresh during loop

javascript - 动态创建一个数组,然后循环另一个数组来比较数据是否存在

mysql - 在 sp mysql 的 while 循环中插入 select 语句

python - 在 python 中创建成对元素列表

swift - for 循环行为异常

java - 我们可以在java中传递一个字符作为整数数组的索引吗

r - 对于R中的大型必要循环,应优先使用 “while loops”而不是 “for loops”吗?