凉渃渃 2021-04-13 23:38 采纳率: 80%
浏览 33
已采纳

java新手遇到的问题 第一个代码 过编译了 但是无法运行 显示实在switch方面出现了问题

import java.util.Scanner;
public class FlightTickets{
public static void main(String[] args){
	

    Scanner sc = new Scanner(System.in);
	{System.out.println("please input the date and individed the month and the day by','");}
    String date_1 =sc.nextLine();
    String [] date = date_1.split(",");
    int[] time = new int[2];
    for(int i=0;i<date.length;i++)
  {
	time[i]=Integer.parseInt(date[i]);        //著名输入算法
  }
    Scanner scan = new Scanner(System.in);
	{System.out.println("please input the amount of your tickets");}
    int amount = scan.nextInt();
    int price=0;
    switch(time[1]){
    case 1:
	    if(time[2]==1||time[2]==28)
		    price=1200;
	    else if(time[2]==7||time[2]==8||time[2]==14||time[2]==15||time[2]==21||time[2]==22||time[2]==29)
			price=1200*8/10;
	    else price=1200*6/10;
		break;
    case 2:
		if(time[2]==11)
		price=1200;
	    else if(time[2]==4||time[2]==5||time[2]==12||time[2]==18||time[2]==19||time[2]==25||time[2]==26)
			price=1200*8/10;
			else price=1200*6/10;
        break;
    case 3:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==4||time[2]==5||time[2]==11||time[2]==12||time[2]==18||time[2]==19||time[2]==25||time[2]==26)
			price=1200*8/10;
			else price=1200*6/10;
        break;
    case 4:
		if(time[2]==4)
		price=1200;
	    else if(time[2]==1||time[2]==2||time[2]==8||time[2]==9||time[2]==15||time[2]==16||time[2]==22||time[2]==23||time[2]==29||time[2]==30)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 5:
		if(time[2]==1||time[2]==30)
		   {price=1200;}
	    else if(time[2]==6||time[2]==7||time[2]==13||time[2]==14||time[2]==20||time[2]==21||time[2]==27||time[2]==28)
			price=1200 * 8 / 10;
			else price=1200 * 6 / 10;
		break;
    case 6:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==3||time[2]==4||time[2]==10||time[2]==11||time[2]==17||time[2]==18||time[2]==24||time[2]==25)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 7:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==1||time[2]==2||time[2]==8||time[2]==9||time[2]==15||time[2]==16||time[2]==22||time[2]==23||time[2]==29||time[2]==30)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 8:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==5||time[2]==6||time[2]==12||time[2]==13||time[2]==19||time[2]==20||time[2]==26||time[2]==27)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 9:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==2||time[2]==3||time[2]==9||time[2]==10||time[2]==16||time[2]==17||time[2]==23||time[2]==24||time[2]==30)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 10:
		if(time[2]==1||time[2]==4)
		price=1200;
	    else if(time[2]==7||time[2]==8||time[2]==14||time[2]==15||time[2]==21||time[2]==22||time[2]==28||time[2]==29)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 11:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==4||time[2]==5||time[2]==11||time[2]==12||time[2]==18||time[2]==19||time[2]==25||time[2]==26)
			price=1200*8/10;
			else price=1200*6/10;
		break;
    case 12:
		if(time[2]==0)
		price=1200;
	    else if(time[2]==2||time[2]==3||time[2]==9||time[2]==10||time[2]==16||time[2]==17||time[2]==23||time[2]==24||time[2]==30||time[2]==31)
			price=1200*8/10;
			else price=1200*6/10;
		break;
  }
	{System.out.println("the price is "+price * amount);}
		{System.out.println("\n");}
  }
}

  • 写回答

5条回答 默认 最新

  • 关注

    time[2]的下标超出了长度,你的time数组是2个元素,应该是time[0],time[1],把2改为1就正常了。

    JAVA0基础(QQ即时通讯软件项目实训):https://edu.csdn.net/course/detail/2981

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流