为什么我的java程序会无限循环

importjava.util.*;importjava.io.*;publicclassLilv{publicstaticvoidmain(String[]args)t... import java.util.*;import java.io.*;
public class Lilv {
public static void main(String[] args) throws IOException
{
System.out.println("请输入您的银行类型");
String line ;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
line = reader.readLine();
char a = line.charAt(0);
System.out.println("看样子你的银行是"+a);

System.out.println("请输入您的存款数目");
Scanner sc = new Scanner(System.in);
float shumu= sc.nextFloat();

while(true){

switch(a){
case 'A':System.out.println("您的利息是"+shumu*1.5/100);break;
case 'B':System.out.println("您的利息是"+shumu*2/100);break;
case 'C':System.out.println("您的利息是"+shumu*3/100);break;
case 'D':System.out.println("您的利息是"+shumu*5/100);break;
default:System.out.println("你输入的不正确,只能输入大写的A,B,C,D");
}

}
}
}

经测试在循环体里的东西会无限循环
展开
 我来答
壁纸汇集站
2013-11-02 · TA获得超过155个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:61.1万
展开全部
while(true)当然无限循环啊……
小小改了下,你是不是需要这样的

import java.util.Scanner;
public class Lilv {
public static void main(String[] args) {
while(true){
System.out.println("请输入您的银行类型");
Scanner scanner=new Scanner(System.in);
String line = scanner.next();
char a = line.charAt(0);
System.out.println("看样子你的银行是"+a);

System.out.println("请输入您的存款数目");
float num= scanner.nextFloat();

switch(a){
case 'A':System.out.println("您的利息是"+num*1.5/100);break;
case 'B':System.out.println("您的利息是"+num*2/100);break;
case 'C':System.out.println("您的利息是"+num*3/100);break;
case 'D':System.out.println("您的利息是"+num*5/100);break;
default:System.out.println("你输入的不正确,只能输入大写的A,B,C,D");
}

}
}
}
xmjid
2013-11-02 · TA获得超过159个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:165万
展开全部
while(true)

你这样当然会无限循环
你想这样吧?
public static void main(String[] args) throws IOException {

while (true) {
System.out.println("请输入您的银行类型");
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
line = reader.readLine();
char a = line.charAt(0);
System.out.println("看样子你的银行是" + a);

System.out.println("请输入您的存款数目");
Scanner sc = new Scanner(System.in);
float shumu = sc.nextFloat();

switch (a) {
case 'A':
System.out.println("您的利息是" + shumu * 1.5 / 100);
break;
case 'B':
System.out.println("您的利息是" + shumu * 2 / 100);
break;
case 'C':
System.out.println("您的利息是" + shumu * 3 / 100);
break;
case 'D':
System.out.println("您的利息是" + shumu * 5 / 100);
break;
default:
System.out.println("你输入的不正确,只能输入大写的A,B,C,D");
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Linux00Unix
2013-11-02 · 超过31用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:65.3万
展开全部
import java.util.*;import java.io.*;
public class Lilv {
 public static void main(String[] args) throws IOException
 {
  System.out.println("请输入您的银行类型");
  String line ;
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  line = reader.readLine();
  char a = line.charAt(0);
  System.out.println("看样子你的银行是"+a);
  
  System.out.println("请输入您的存款数目");
  Scanner sc = new Scanner(System.in);
  float shumu= sc.nextFloat();

while(true){
  
   switch(a){
   case 'A':System.out.println("您的利息是"+shumu*1.5/100);break;
   case 'B':System.out.println("您的利息是"+shumu*2/100);break;
   case 'C':System.out.println("您的利息是"+shumu*3/100);break;
   case 'D':System.out.println("您的利息是"+shumu*5/100);break;
   default:System.out.println("你输入的不正确,只能输入大写的A,B,C,D");
               }
   break;
           }
       }
}

这样就可以了,break只能跳出当前代码块,这里跳不出while循环的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友280dca9
2013-11-02 · TA获得超过111个赞
知道答主
回答量:42
采纳率:0%
帮助的人:31万
展开全部
break只是跳出了switch语句块,没有跳出while循环,这个时候a值还是存在的,所以会一直执行下去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5555紫
2013-11-02
知道答主
回答量:1
采纳率:0%
帮助的人:1427
展开全部
你用的就是无限循环啊,while(true)。所以这里要改,你可以把那个true换成一个控制变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式