Java中的do-while问题

//循环输入一个年份,判断其是闰年还是平年,用do-while结构实现。
import java.util.*;
public class Test22 {

public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("判断是平年还是闰年");
int year;
String a=String.valueof(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.equals("a"));//这里提示错误。
System.out.println("程序结束");
}

}
请老师教我应该如何改以上代码才能不报错,谢谢啦。

第1个回答  2018-12-14
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String year = null;
do {
System.out.println("请输入一个年份");
year = in.nextLine();
if (year.contains("a"))
break;
int y = Integer.parseInt(year.replaceAll("[^\\d]+", ""));
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
System.out.println(y + "是闰年");
} else {
System.out.println(y + "是平年");
}
} while (true);
System.out.println("程序结束");
}

追问

初学者看不懂😥😥😥

追答

我给你备注一下,你就明白了..稍等

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String year = null;//定义一个空字符串year,一会用来接收字符串!
do {
System.out.println("请输入一个年份");
//控制台输入一行字符串,不管是数字还是字母(你开始nextint仅仅限制为数字注意区别)
year = in.nextLine();
//判断这个字符串中师傅包含有字母a,如果有就跳出循环结束运行了.
if (year.contains("a"))
break;
//如果不包含,程序会继续运行到这里来,筛选掉字符串中非数字的东东也就是说比如你输入了bb13这样的玩意时候
//去掉非字母后,把剩余的数字变成int类型数字,就可以继续向下使用了
int y = Integer.parseInt(year.replaceAll("[^\\d]+", ""));
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
System.out.println(y + "是闰年");
} else {
System.out.println(y + "是平年");
}
} while (true);// 这里我应该怎么设置才能达到预想的效果呢?
System.out.println("程序结束");

追问

非常感谢您的耐心解答,明白了

追答

不客气,共同学习!

本回答被提问者和网友采纳

Java循环结构-1,while和do while循环详解
Java中的循环结构是编程中不可或缺的部分,包括while、do-while和for循环。它们允许代码在满足特定条件下反复执行,而非仅执行一次,从而实现重复操作。首先,我们来看while循环,它是一种先判断后执行的循环。只要给定的布尔条件为真,就会反复执行循环体内的代码。例如,当编写一个输出图书信息的程序,如...

Java学习:do-while循环结构
do-while循环结构在JavaScript中扮演着重要角色,它与while循环的主要区别在于执行顺序。无论条件是否成立,循环体内的代码至少会执行一次。do-while循环的语法如下:执行流程如下:1. 先执行循环体代码;2. 紧接着检查条件是否满足,满足则再次执行循环体,不满足则退出循环。因此,与while循环不同,do-whi...

java中do while有什么使用特点啊
do-while循环语句其实就是while循环的变体。它的语法是:do{循环体;} while(条件); 注意:在do循环中,while条件判断之后需要添加一个分号。 do...while的循环流程是和while 循环是不同的.二者的主要区别在于循环条件和循环体计算顺序不同。比方说:public class Test{public static void main (S...

java 的do-while的问题
是的,循环了11次,do-while语句是先执行再判断条件的~

Java基础~while循环
Java基础:while循环与do-while循环在Java编程中,while和do-while循环虽然看似简单,但它们的重要性不容忽视,尤其是在实际项目开发中,它们的应用非常广泛。while循环while循环的基本结构是:只要给定的条件为真,就会重复执行循环体。其基本语法如下:DEMO:while循环do-while循环与while不同,do-while循环...

do while循环例子是什么?
do while循环例子:package first;import java.util.Scanner;\/ 本类演示do-while循环的用法 \/ public class do_whileDemo { public static void main(String[] args) { \/\/do-while循环与之前的while循环的区别在于 \/\/do-while循环是先执行一次再进行判断,而while循环是先判断在执行 \/\/do-while循环...

什么是循环?Java中有哪些循环?
java循环有三种:1、do while 循环 2、while 循环 3、for 循环 1、do while 循环 至少执行一次 语法格式:do { 至少执行一次循环体 sum =sum +i ;\/\/累加自然整数i到sum i =i +1;\/\/自然整数加一到下一个整数 }while(i<=100);2、while 循环 语法格式:while(i<=100);{ \/\/可能一次...

【Java编程】程序结构--循环1(while...和do...while)
Java编程中的循环结构:while和do...while详解在编写Java程序时,循环结构至关重要,使代码能够重复执行特定操作。主要有三种循环类型,这里主要讲解while和do...while的用法。例如,自动售票机的运作原理就利用了循环,当乘客投入不足10元时,会持续投币直到余额达到或超过10元,这一过程由while语句控制。

do-while循环问“你的名字叫什么?”,如果回答的是“不告诉你”,就继续...
do { cout<<"你的名字叫什么?"<<endl;cin>>names;}while(name==''不告诉你");cout<<"原来你的名字叫"<<names<<endl;

简单Java程序do-while循环语句的问题(关于角谷猜想的验证)
你的判断条件写错了,判断字符串是否相等要用equals去比较 "yes".equals(o) || "Yes".equals(o)|| "YES".equals(o)

相似回答