java中的do-while问题

import java.util.*;
public class test{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int year;
do{
System.out.println("请输入一个年份");
year=in.nextInt();
if(year%4==0&&year%100!=0||year%400==0){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}
}while(year!=a);//这里我应该怎么设置才能达到预想的效果呢?
System.out.println("程序结束");
}
}
代码如上所示,我想用do-while 结构做一个判断闰年还是平年的程序,但是while后面的循环条件不知道怎么写才好了,因为我想以输入a来结束这个循环程序,求大神指导。谢谢

如果是想输入字符串"a"来结束的话,则需要明白Java中字符串的比较不能用 == 或者 != 来比较,需要用 equals() 方法,比如:
你想判断字符串 str1 和 str2 的值是否相等,则:
str1.equals(str2);
这个方法会返回一个 boolean 值,如果为 true,则相等,为 false,则不等。
所以你这里应该要写成 while(!year.equals("a"))。追问

您好,按照您的方法我重新试了一下,但是返回一个错误,错误如下,这是什么原因呢?

追答

类型错误,你的 year 定义为 int,即整形变量,"a"是 String,即字符串,类型不同不能比较,需要修改类型

追问

您好,如果想要达到以字符串类型的a来结束这个程序,具体做法是需要在前面再重新声明一个字符串类型的变量吗?我应该如何来实现呢?

追答

Java 有提供把 int 转为 String 的方法,比如:String.valueOf(year) 可以把年份转为字符串,然后再进行比较

追问

非常感谢老师耐心讲解。初学者还没有学到这些,不过确实很实用。😊😊😊

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答