陷入死循环了 自己找不到错在哪里了,求大神指导

来源:12-2 项目问题解析 1

猫阿哥

2016-03-03 14:24

package com.dada;

import java.util.Scanner;

public class Show {


public static void main(String[] args) {

Car [] carForRent = {new Ke("奥迪A4",500,4),new Ke("马自达6",400,4),new KeHuo("皮卡雪 6",450,4,2),new Ke("金龙",800,20),

new Ke("松花江",400,4),new Huo("依维柯",1000,20)};//定义一个数组保存创建的对象

         Scanner scann = new Scanner(System.in);

System.out.println("欢迎使用答答租车系统:");

System.out.println("您是否要租车:1是   0   否");

String x = scann.next();

if (x.equals("1"))

{

System.out.println("您可租车的类型及价目表:");

System.out.println("序号\t汽车名称\t租金\t\t容量");

for (int i =0;i<=carForRent.length-1;i++)//显示租车列表

{

System.out.print(i+1+"\t");carForRent[i].show();//调用各种车型的显示

}

}

   System.out.println("请输入您需要的汽车数量:");

  int y = scann.nextInt();//、定义一个变量保存顾客输入的车数

  for(int i=1;i<=y;i++)

  {

  System.out.println("请输入您选择的汽车序号:");

  

  int z = scann.nextInt();

  if((z<0)||z>carForRent.length)//判断输入的序号是否合法

  {

  System.out.println("您输入序号有误!");

  }

  

  

  else   

 

  {

  System.out.println("请输入您要租 的天数:");

 

  int tianshu = scann.nextInt();

  System.out.println("您的账单如下:");

  for(int j =z;i>=0;i++)//循环是判断用户所选的车的类型的

  

  {    int  keNum = 0;

  int huoNum = 0;

  int khNum = 0;

  if((carForRent[j].poeNum!=0)&&(carForRent[j].Weight!=0))

  {

  khNum = khNum +1;

  }

  else if((carForRent[j].poeNum!=0)&&(carForRent[j].Weight==0))

  {

  keNum = keNum +1;

  }

  else huoNum = huoNum+1;

  System.out.println("载客车有"+keNum+"辆");

  System.out.println("载货车有"+huoNum+"辆");

  System.out.println("载客载货车有"+khNum+"辆");

  System.out.println("它们 分别是:"+carForRent[z].name);

  int sum = (keNum*carForRent[z].price+huoNum*carForRent[z].price+khNum*carForRent[z].price)*tianshu;

  System.out.println("总共花费:"+sum);

  }

//  int sum = (keNum*carForRent[z].price+huoNum*carForRent[z].price+khNum*carForRent[z].price)*tianshu;

//  System.out.println("总共花费:"+sum);

  

  }  

  }

}

}


写回答 关注

3回答

  • qq_萍萍儿_0
    2016-03-03 15:02:04

    for(int j =z;i>=0;i++)这里的i在循环中没有用到,这个循环中它的值是没机会变的,所以它会永远满足>=0的条件造成死循环..但没看懂你这里为啥要用这个循环

    猫阿哥

    。。。用这个循环来遍历用户输入的车的信息,判断属于那种车。都是自己在想的,肯定有很多问题,谢谢大家啦!

    2016-03-03 17:09:56

    共 1 条回复 >

  • qq_温暖遥远不过时光_0
    2016-03-03 14:56:07

     for(int j =z;i>=0;i++)//循环是判断用户所选的车的类型的

    这有问题。改成 for(int j =z;i>=0;i--)试试

  • qq_萍萍儿_0
    2016-03-03 14:52:33

    for(int j =z;i>=0;i++)这句话有问题

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

531107 学习 · 6299 问题

查看课程

相似问题