-2
import java.util.Scanner;
public class Menu {

    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in); 
        int choice, quantity;
        double price = 0;  
        double studentprice = 0;
        double totalamt = 0;
        String option,student;
        char option1, studentChar;

        do{

        System.out.println("menu");
        System.out.println("====");

        System.out.println("1. Hamburger");
        System.out.println("2. CheeseBurger");
        System.out.println("3. FrenchFries");
        System.out.println("4. SoftDrinks");

        System.out.print("Enter your choice (1,2,3 or 4):");
        choice = sc.nextInt();

        if(choice ==1)
            price = 1.5;
        else if (choice ==2)
            price = 2;
        else if (choice ==3)
            price = 2.4;
        else if (choice ==4)
        price= 1.95;

        System.out.print("Enter the quantity of your order:");
        quantity = sc.nextInt();

        totalamt += price * quantity ;
        sc.nextLine();


        System.out.print("Do you want to continue? (yes/no)?");
        option = sc.next();
        option1 = option.charAt(0);

        System.out.println("");

        }

        while(option1 == 'y');
        System.out.print("Are you a student? (yes/no?)");
        student = sc.next();
        studentChar = student.charAt(0);

        if(studentChar == 'y')
        studentprice = totalamt * 0.9;
        System.out.print("$ " + studentprice + " is the price you have to pay " );

        **else**(studentChar == 'n')
        studentprice = price;
        System.out.print("$ " + price + " is the price you have to pay " ); 
    }


}`        

最后一个else有错误。它在 else 处显示语法错误,请删除此标记。请帮忙!当我添加 do while 时,它​​打印为零。-填充物填充物填充物填充物填充物-

谢谢!:)

4

5 回答 5

2

语法不正确。当你有多个语句时,你应该使用括号if-block,否则只有第一个语句会被处理if-block,其他语句不会是的一部分if-block

并且在这种情况下,else语句没有if作为if-block完成后的studentprice = totalamt * 0.9;行。

if(studentChar == 'y'){
    studentprice = totalamt * 0.9;
    System.out.print("$ " + studentprice + " is the price you have to pay " );
}else(studentChar == 'n'){
    studentprice = price;
    System.out.print("$ " + price + " is the price you have to pay " ); 

}
于 2013-06-28T05:28:42.277 回答
0

错误在这里应该是如果

  **else**(studentChar == 'n')
studentprice = price;

它应该是

if(studentChar == 'y'){
        studentprice = totalamt * 0.9;
        System.out.print("$ " + studentprice + " is the price you have to pay " );
        }
        else if(studentChar == 'n'){
        studentprice = price;
        System.out.print("$ " + price + " is the price you have to pay " ); 
        }else{


    }
于 2013-06-28T05:28:45.823 回答
0
studentChar = 0;
while(studentChar  != 'y' && studentChar  != 'n')
{
    System.out.print("Are you a student? (yes/no?)");
    student = sc.next();
    studentChar = student.charAt(0);
}

    if(studentChar == 'y')
    {
        studentprice = totalamt * 0.9;
        System.out.print("$ " + studentprice + " is the price you have to pay " );
    }
    else if(studentChar == 'n')
    {
        studentprice = price;
        System.out.print("$ " + price + " is the price you have to pay " ); 
    }
于 2013-06-28T05:32:04.093 回答
0

我对你的代码感到困惑。你是如何编译这段代码的

else(studentChar == 'n')

你不能用 else 检查条件,你必须使用 if

导入 java.util.Scanner;

公共类菜单{

public static void main(String[] args)
{
    Scanner sc = new Scanner(System.in);
    int choice, quantity;
    double price = 0;
    double studentprice = 0;
    double totalamt = 0;
    String option,student;
    char option1, studentChar;

    do{

        System.out.println("menu");
        System.out.println("====");

        System.out.println("1. Hamburger");
        System.out.println("2. CheeseBurger");
        System.out.println("3. FrenchFries");
        System.out.println("4. SoftDrinks");

        System.out.print("Enter your choice (1,2,3 or 4):");
        choice = sc.nextInt();

        if(choice ==1)
            price = 1.5;
        else if (choice ==2)
            price = 2;
        else if (choice ==3)
            price = 2.4;
        else if (choice ==4)
            price= 1.95;

        System.out.print("Enter the quantity of your order:");
        quantity = sc.nextInt();

        totalamt += price * quantity ;
        sc.nextLine();


        System.out.print("Do you want to continue? (yes/no)?");
        option = sc.next();
        option1 = option.charAt(0);

        System.out.println("");

    }

    while(option1 == 'y');
    System.out.print("Are you a student? (yes/no?)");
    student = sc.next();
    studentChar = student.charAt(0);

    if(studentChar == 'y')
    {
        studentprice = totalamt * 0.9;
        System.out.print("$ " + studentprice + " is the price you have to pay " );
    }
   else if(studentChar == 'n')
   {
       studentprice = price;
       System.out.print("$ " + studentprice + " is the price you have to pay " );

   }
}
}

现在可以使用

于 2013-06-28T05:43:49.723 回答
0

尝试这个

do
{
    System.out.print("Are you a student? (yes/no?)");
    student = sc.next();
    studentChar = student.charAt(0);
} while(studentChar != 'y' && studentChar != 'n');

if(studentChar == 'y')
{
  //do something here
 }
 else if(studentChar == 'n')
 {
  //other statement
  }
于 2013-06-28T05:44:23.217 回答