为什么我的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");
}
}
}
}
经测试在循环体里的东西会无限循环 展开
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");
}
}
}
}
经测试在循环体里的东西会无限循环 展开
5个回答
展开全部
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");
}
}
}
}
小小改了下,你是不是需要这样的
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");
}
}
}
}
展开全部
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");
}
}
}
你这样当然会无限循环
你想这样吧?
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");
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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循环的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
break只是跳出了switch语句块,没有跳出while循环,这个时候a值还是存在的,所以会一直执行下去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用的就是无限循环啊,while(true)。所以这里要改,你可以把那个true换成一个控制变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询