0

我似乎在这个中期项目上遇到了很大的困难。假设询问您是否愿意first classcoach seating然后从其中扣除任何一个,并提供预订另一个座位的选择。

我刚刚在头等舱座位中添加了对话选项部分,现在它在“ dialogresult =”处给了我一个解析错误,但我无法弄清楚原因。此外,当它确实工作时,它会成功循环回到起点,从计数中扣除一个座位,然后不接受用户输入再次预订。

我想我只需要另一双眼睛来看待这个问题,我在这里真的很困惑。

import javax.swing.*;
import java.util.*;

class Midterm2 {
 public static void main(String[] args) {
  boolean coachSeats[] = new boolean[10];
  boolean firstSeats[] = new boolean [5];
  int seatsFull = 0,FirstSeatCount,CoachSeatCount;


  for(int i=0;i<10;i++){
     firstSeats[i] = false;
     coachSeats[i] = false;

     do{
        FirstSeatCount = 4;
        CoachSeatCount = 9;
        if(firstSeats[i] == false) FirstSeatCount++;
        if(coachSeats[i] == false) CoachSeatCount++;


        int seatClass = Integer.parseInt((String) JOptionPane.showInputDialog(null, 
           "\n" + FirstSeatCount + " Seats avaliable in First Class "+ 
           "\n" + CoachSeatCount + " Seats avaliable in Coach." +
           "\nPress 1 to reserve a seat in first class" +
           "\nPress 2 to reserve a seat in coach:"));

        if (seatClass == 1){

           if(firstSeats[i] == false)
              firstSeats[i] = true;
           FirstSeatCount = 1;{
           dialogresult = JOptionPane.YES_NO_OPTION; 
           JOptionPane.showConfirmDialog(null, "\nBoarding Pass Details -->" +
                                         "\nSeat number :" + (i+1) +
                                         "\nFirst Class" +
                                         "\nWould you like to reserve another seat", JOptionPane.YES_NO_OPTION);

           if (dialogresult == JOptionPane.YES_OPTION); 
           if(dialogresult == JOptionPane.NO_OPTION) 
              break;
                            }                                                       


        if(FirstSeatCount == 0){
           JOptionPane.showInputDialog ("\nNo seats availabe in this class," + 
                         "would you like to travel in another class(y/n):");
                                    }
                            }
4

1 回答 1

1

在需要删除的以下行上,您有一个花括号自行浮出:

FirstSeatCount = 1;{

将其更改为:

FirstSeatCount = 1;

这应该可以解决您的解析问题。尚未尝试编译代码以查看是否存在任何其他问题,但这应该可以解决这个特定问题。

另外,在格式化说明上,请帮自己一个忙,请不要以您当前的方式格式化您的大括号。虽然这是主观的,但对我来说实际上只有两个好的做法:

if(boolean comparison){
    some code...
}

或者我个人最喜欢的:

if(boolean comparison)
{
    some code...
}

我可能会被一些喜欢某种非正统风格的人激怒或否决,但实际上,做这两个以外的任何事情都会损害可读性,而且作为编程导师,阅读没有的代码真的很痛苦不要遵循这两个约定之一。/endrant

于 2014-06-30T20:58:29.863 回答