java中循环语句的问题
我需要用一个Java的while循环来实现一个程序,程序运行出来是这样的:这个程序是用来判断最大年纪和最小年纪的人的信息。请输入姓名:Tommy,G请输入年龄:17请输入...
我需要用一个Java的while循环来实现一个程序,程序运行出来是这样的:
这个程序是用来判断最大年纪和最小年纪的人的信息。
请输入姓名: Tommy, G
请输入年龄: 17
请输入姓名: Don, G
Please enter an age: 42
请输入姓名: Cathy, G
请输入年龄: 11
请输入姓名: Tommy, T
请输入年龄: 19
请输入姓名: Elsa, T
请输入年龄: 35
请输入姓名: quit
最年轻的人是 Cathy, G (11).
最年长的人是 Don, G (42).
我觉得应该是用while循环做吧,然后再在循环里用if语句来判断年纪大小。可是我不知道如何做到先把年龄赋值给一个变量,然后再判断这个变量和随后的输入的年龄大小。
麻烦高人来指点下。谢谢!!
这个是我根据一楼的提示写的程序http://hi.baidu.com/vvccckkkdd/blog/item/9bf9180b39d4e3a52fddd461.html,可是我输入“quit”的时候循环并没有停止是什么原因呢~~,因为能输入字数有限,所以只能发在这里了。
多谢三楼的帮助!不过现在我输入“quit” 的时候他还是会让输入一次年龄才会退出循环然后才显示最年轻和最年长的人的信息,而不是直接退出循环并且显示最年轻和最年长的人的信息,这又是为什么啊~~ 展开
这个程序是用来判断最大年纪和最小年纪的人的信息。
请输入姓名: Tommy, G
请输入年龄: 17
请输入姓名: Don, G
Please enter an age: 42
请输入姓名: Cathy, G
请输入年龄: 11
请输入姓名: Tommy, T
请输入年龄: 19
请输入姓名: Elsa, T
请输入年龄: 35
请输入姓名: quit
最年轻的人是 Cathy, G (11).
最年长的人是 Don, G (42).
我觉得应该是用while循环做吧,然后再在循环里用if语句来判断年纪大小。可是我不知道如何做到先把年龄赋值给一个变量,然后再判断这个变量和随后的输入的年龄大小。
麻烦高人来指点下。谢谢!!
这个是我根据一楼的提示写的程序http://hi.baidu.com/vvccckkkdd/blog/item/9bf9180b39d4e3a52fddd461.html,可是我输入“quit”的时候循环并没有停止是什么原因呢~~,因为能输入字数有限,所以只能发在这里了。
多谢三楼的帮助!不过现在我输入“quit” 的时候他还是会让输入一次年龄才会退出循环然后才显示最年轻和最年长的人的信息,而不是直接退出循环并且显示最年轻和最年长的人的信息,这又是为什么啊~~ 展开
5个回答
展开全部
有两种方法
1,给一个变量每次都比较下来
max = 第一个输入的数;
min = 第一个输入的数;
while(循环输入){
输入的是分别跟max与min比较.说到这里,楼主应该明白怎么做了吧?
}
2.把每次输入的值都追加到一个数组里面,再把最新输入的数与数组比较
1,给一个变量每次都比较下来
max = 第一个输入的数;
min = 第一个输入的数;
while(循环输入){
输入的是分别跟max与min比较.说到这里,楼主应该明白怎么做了吧?
}
2.把每次输入的值都追加到一个数组里面,再把最新输入的数与数组比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以给他一个初始值,在里面的设置可以来判断的!
int max=n1; int min= n2;
再来一个while循环!再在里面进行比较!设置手动输入!scanf来输入!
你用quit是退不出的。要用exit来推出的。不然你的程序在运行!
int max=n1; int min= n2;
再来一个while循环!再在里面进行比较!设置手动输入!scanf来输入!
你用quit是退不出的。要用exit来推出的。不然你的程序在运行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“quit”的时候循环并没有停止的原因是判断两个String的内容是否相等不能直接用 ==或!=,要用equal方法 或忽略大小写的equalsIgnoreCase方法。
修改方法:while(!"quit".equalsIgnoreCase(name))
修改方法:while(!"quit".equalsIgnoreCase(name))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-10-12
展开全部
public class Test_09 {
public static void main(String[] args) throws Exception {
P min=null,max=null;
byte[] buf = new byte[1024];
int r;
String n=null,t;
int a;
boolean nok=false;
while(true){
if(!nok){
System.out.print("Enter name or enter 'quit' to quit: ");
r = System.in.read(buf);
n = new String(buf,0,r).trim();
if(n.isEmpty())
continue;
if(canBreak(n))
break;
nok=true;
}
System.out.print("Enter age or enter 'quit' to quit:");
r = System.in.read(buf);
t = new String(buf,0,r).trim();
if(canBreak(t))
break;
if(!t.matches("[0-9]+")){
System.out.println("\nAge must be a number.");
continue;
}
a=Integer.parseInt(t);
P tp = new P(n,a);
System.out.println("Person: "+tp);
if(min==null)
min=tp;
else if(min.age>tp.age)
min=tp;
if(max==null)
max=tp;
else if(max.age<tp.age)
max=tp;
nok=false;
}
System.out.println("Max: "+max);
System.out.println("Min: "+min);
}
static boolean canBreak(String s){
return s.equalsIgnoreCase("quit");
}
static class P{
String name;
int age;
P(String n,int a){
name=n;
age=a;
}
public String toString(){
return name+"("+age+")";
}
}
}
public static void main(String[] args) throws Exception {
P min=null,max=null;
byte[] buf = new byte[1024];
int r;
String n=null,t;
int a;
boolean nok=false;
while(true){
if(!nok){
System.out.print("Enter name or enter 'quit' to quit: ");
r = System.in.read(buf);
n = new String(buf,0,r).trim();
if(n.isEmpty())
continue;
if(canBreak(n))
break;
nok=true;
}
System.out.print("Enter age or enter 'quit' to quit:");
r = System.in.read(buf);
t = new String(buf,0,r).trim();
if(canBreak(t))
break;
if(!t.matches("[0-9]+")){
System.out.println("\nAge must be a number.");
continue;
}
a=Integer.parseInt(t);
P tp = new P(n,a);
System.out.println("Person: "+tp);
if(min==null)
min=tp;
else if(min.age>tp.age)
min=tp;
if(max==null)
max=tp;
else if(max.age<tp.age)
max=tp;
nok=false;
}
System.out.println("Max: "+max);
System.out.println("Min: "+min);
}
static boolean canBreak(String s){
return s.equalsIgnoreCase("quit");
}
static class P{
String name;
int age;
P(String n,int a){
name=n;
age=a;
}
public String toString(){
return name+"("+age+")";
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将你的while(name != "quit")
改成while (!name.equals("quit"))
就可以了
不过还要输入
年龄才可以结束
出现这个状况的原因很简单
就是因为
你在
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
。。。。。。
}
在循环里面判断的是上一个name,也就是输入的第一个name
所以只有再次输入的时候将读入的值付给name,才能读入新的name
也才能在循环中进行判断
建议改成
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
if(!name.equals("quit")){
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
if (age > max) {
max = age;
Oldestone = name;
} else {
min = age;
Youngestone = name;
}
}
}
补充回答:
1、首先看你输入quit的时候有没有输入了空格
2、如果你使用了
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
if(!name.equals("quit")){
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
if (age > max) {
max = age;
Oldestone = name;
} else {
min = age;
Youngestone = name;
}
}
}
后还是出现这种情况
那么你将 if(!name.equals("quit"))改成if(!"quit".equals(name))试一试
看这样能不能实现控制
改成while (!name.equals("quit"))
就可以了
不过还要输入
年龄才可以结束
出现这个状况的原因很简单
就是因为
你在
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
。。。。。。
}
在循环里面判断的是上一个name,也就是输入的第一个name
所以只有再次输入的时候将读入的值付给name,才能读入新的name
也才能在循环中进行判断
建议改成
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
if(!name.equals("quit")){
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
if (age > max) {
max = age;
Oldestone = name;
} else {
min = age;
Youngestone = name;
}
}
}
补充回答:
1、首先看你输入quit的时候有没有输入了空格
2、如果你使用了
while (!name.equals("quit")) {
System.out.print("Please enter a name: ");
name = keyboard.next();
if(!name.equals("quit")){
System.out.print("Please enter an age: ");
age = keyboard.nextInt();
if (age > max) {
max = age;
Oldestone = name;
} else {
min = age;
Youngestone = name;
}
}
}
后还是出现这种情况
那么你将 if(!name.equals("quit"))改成if(!"quit".equals(name))试一试
看这样能不能实现控制
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询