当前位置:文档之家› java中的循环日期

java中的循环日期

java中的循环日期
java中的循环日期

Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat类

1.计算某一月份的最大天数

Calendar time=Calendar.getInstance();

time.clear();

time.set(Calendar.YEAR,year); //year 为int

time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0

int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数

注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间

2.Calendar和Date的转化

(1) Calendar转化为Date

Calendar cal=Calendar.getInstance();

Date date=cal.getTime();

(2) Date转化为Calendar

Date date=new Date();

Calendar cal=Calendar.getInstance();

cal.setTime(date);

3.把字符串转化为java.util.Date

方法一:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

java.util.Date dt=sdf.parse("2005-2-19");

System.out.print(sdf.format(dt)); //输出结果是:2005-2-19

方法二:

java.util.Date dt=null;

DateFormat df=DateFormat.getDateInstance();

dt=df.parse("2005-12-19");

System.out.println(dt); //输出结果为:Mon Dec 19 00:00:00 CST 2005 System.out.println(df.format(dt)); //输出结果为:2005-2-19

4.把字符串转化为java.sql.Date

字符串必须是"yyyy-mm-dd"格式,否则会抛出IllegalArgumentException异常

java.sql.Date sdt=java.sql.Date.valueOf("2005-9-6");

System.out.println(sdt); //输出结果为:2005-9-6

5.格式化输出日期时间(这个用的比较多)

Date date=new Date();

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

String time=df.format(date);

System.out.println(time);

需要注意的一点:SimpleDateFormat类格式化一个字符串时,可根据需要调用format() 或parse() 函数;只不过format()返回String类型,parse()返回java.util.Date类型

6.计算一年中的第几星期

(1)计算某一天是一年中的第几星期

Calendar cal=Calendar.getInstance();

cal.set(Calendar.YEAR, 2006);

cal.set(Calendar.MONTH, 8);

cal.set(Calendar.DAY_OF_MONTH, 3);

int weekno=cal.get(Calendar.WEEK_OF_YEAR);

(2)计算一年中的第几星期是几号

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal=Calendar.getInstance();

cal.set(Calendar.YEAR, 2006);

cal.set(Calendar.WEEK_OF_YEAR, 1);

cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

System.out.println(df.format(cal.getTime()));

输出:

2006-01-02

7.add()和roll()的用法(不太常用)

(1)add()方法

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=Calendar.getInstance();

cal.set(Calendar.YEAR, 2006);

cal.set(Calendar.MONTH, 8);

cal.set(Calendar.DAY_OF_MONTH, 3);

cal.add(Calendar.DATE, -4);

Date date=cal.getTime();

System.out.println(df.format(date));

cal.add(Calendar.DATE, 4);

date=cal.getTime();

System.out.println(df.format(date));

输出:

2006-08-30

2006-09-03

(2)roll方法

cal.set(Calendar.YEAR, 2006);

cal.set(Calendar.MONTH, 8);

cal.set(Calendar.DAY_OF_MONTH, 3);

cal.roll(Calendar.DATE, -4);

date=cal.getTime();

System.out.println(df.format(date));

cal.roll(Calendar.DATE, 4);

date=cal.getTime();

System.out.println(df.format(date));

输出:

2006-09-29

2006-09-03

可见,roll()方法在本月内循环,一般使用add()方法;

8.计算两个任意时间中间的间隔天数(这个比较常用)

(1)传进Calendar对象

public int getIntervalDays(Calendar startday,Calendar endday){ if(startday.after(endday)){

Calendar cal=startday;

startday=endday;

endday=cal;

}

long sl=startday.getTimeInMillis();

long el=endday.getTimeInMillis();

long ei=el-sl;

return (int)(ei/(1000*60*60*24));

}

(2)传进Date对象

public int getIntervalDays(Date startday,Date endday){ if(startday.after(endday)){

Date cal=startday;

startday=endday;

endday=cal;

}

long sl=startday.getTime();

long el=endday.getTime();

long ei=el-sl;

return (int)(ei/(1000*60*60*24));

}

(3)改进精确计算相隔天数的方法

public int getDaysBetween (Calendar d1, Calendar d2){

if (d1.after(d2)){

java.util.Calendar swap = d1;

d1 = d2;

d2 = swap;

}

int days = d2.get(Calendar.DAY_OF_YEAR) -

d1.get(Calendar.DAY_OF_YEAR);

int y2 = d2.get(Calendar.YEAR);

if (d1.get(Calendar.YEAR) != y2){

d1 = (Calendar) d1.clone();

do{

days += d1.getActualMaximum(Calendar.DAY_F_YEAR);//得到当年的实际天数

d1.add(Calendar.YEAR, 1);

} while (d1.get(Calendar.YEAR) != y2);

}

return days;

}

注意:通过上面的方法可以衍生出求任何时间,如要查出邮箱三周之内收到的邮件(得到当前系统时间-再得到三周前时间)用收件的时间去匹配最好装化成long去比较

如:1年前日期(注意毫秒的转换)

java.util.Date myDate=new java.util.Date();

long myTime=(myDate.getTime()/1000)-60*60*24*365;

myDate.setTime(myTime*1000);

String mDate=formatter.format(myDate);

3周前的日期

Calendar cal3 = Calendar.getInstance();

cal3.add(cal3.DATE, -21);//取3周前的日期

String date = formatter.format(cal3.getTime());

9. String 和Date ,Long 之间相互转换(最常用)

字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)

通常我们取时间跨度的时候,会substring出具体时间--long-比较

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",https://www.doczj.com/doc/5f5791391.html,);

java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");

long dvalue=d.getTime();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String mDateTime1=formatter.format(d);

10. 通过时间求时间

年月周求日期

SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");

java.util.Date date2= formatter2.parse("2003-05 5 星期五");

SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");

String mydate2=formatter3.format(date2);

求是星期几

mydate= myFormatter.parse("2001-1-1");

SimpleDateFormat formatter4 = new SimpleDateFormat("E");

String mydate3=formatter4.format(mydate);

11. java 和具体的数据库结合

在开发web应用中,针对不同的数据库日期类型,我们需要在我们的程序中对日期类型做各种不同的转换。若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver 数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型

你可以使用dateFormat定义时间日期的格式,转一个字符串即可

class Datetest{

*method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)*@param dateString 需要转换为timestamp的字符串

*@return dataTime timestamp

public final static java.sql.Timestamp string2Time(String dateString)

throws java.text.ParseException {

DateFormat dateFormat;

dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",

Locale.ENGLISH);//设定格式

//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss",

Locale.ENGLISH);

dateFormat.setLenient(false);

java.util.Date timeDate = dateFormat.parse(dateString);//util类型

java.sql.Timestamp dateTime = new

java.sql.Timestamp(timeDate.getTime());//Timestamp类型,timeDate.getTime()返回一个long型

return dateTime;

}

*method 将字符串类型的日期转换为一个Date(java.sql.Date)

*@param dateString 需要转换为Date的字符串

*@return dataTime Date

public final static java.sql.Date string2Date(String dateString)

throws https://www.doczj.com/doc/5f5791391.html,ng.Exception {

DateFormat dateFormat;

dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

dateFormat.setLenient(false);

java.util.Date timeDate = dateFormat.parse(dateString);//util类型

java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型

return dateTime;

}

public static void main(String[] args){

Date da = new Date();

注意:这个地方da.getTime()得到的是一个long型的值

System.out.println(da.getTime());

由日期date转换为timestamp

第一种方法:使用new Timestamp(long)

Timestamp t = new Timestamp(new Date().getTime());

System.out.println(t);

第二种方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)

Timestamp tt = new Timestamp(Calendar.getInstance().get(

Calendar.YEAR) - 1900, Calendar.getInstance().get(

Calendar.MONTH), Calendar.getInstance().get(

Calendar.DATE), Calendar.getInstance().get(

Calendar.HOUR), Calendar.getInstance().get(

Calendar.MINUTE), Calendar.getInstance().get(

Calendar.SECOND), 0);

System.out.println(tt);

try {

String sToDate = "2005-8-18";//用于转换成java.sql.Date的字符串

String sToTimestamp = "2005-8-18 14:21:12.123";//用于转换成

java.sql.Timestamp的字符串

Date date1 = string2Date(sToDate);

Timestamp date2 = string2Time(sToTimestamp);

System.out.println("Date:"+date1.toString());//结果显示

System.out.println("Timestamp:"+date2.toString());//结果显示

}catch(Exception e) {

e.printStackTrace();

}

}

}

*原文地址:https://www.doczj.com/doc/5f5791391.html,/forlina/articles/date2.html

java_循环语句

Java 的循环语句有for,while 和 do-while 。这些语句创造了我们通常所称的循环(loops)。你可能知道,一个循环重复执行同一套指令直到一个结束条件出现。你将看到,Java 有 Java 的循环语句有for,while 和 do-while 。这些语句创造了我们通常所称的循环(loops)。你可能知道,一个循环重复执行同一套指令直到一个结束条件出现。你将看到,Java 有适合任何编程所需要的循环结构。 5.2.1 while 语句 while 语句是Java 最基本的循环语句。当它的控制表达式是真时,while 语句重复执行一个语句或语句块。它的通用格式如下: while(condition) { // body of loop } 条件condition 可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件condition 为假时,程序控制就传递到循环后面紧跟的语句行。如果只有单个语句需要重复,大括号是不必要的。 下面的while 循环从10开始进行减计数,打印出10行“tick”。 // Demonstrate the while loop. class While { public static void main(String args[]) { int n = 10; while(n > 0) { System.out.println("tick " + n); n--; } } } 当你运行这个程序,它将“tick”10次: tick 10 tick 9 tick 8 tick 7 tick 6

tick 5 tick 4 tick 3 tick 2 tick 1 因为while 语句在循环一开始就计算条件表达式,若开始时条件为假,则循环体一次也不会执行。例如,下面的程序中,对println( ) 的调用从未被执行过: int a = 10, b = 20; while(a > b) System.out.println("This will not be displayed"); while 循环(或Java 的其他任何循环)的循环体可以为空。这是因为一个空语句(null statement) (仅由一个分号组成的语句)在Java 的语法上是合法的。例如,下面的程序: // The target of a loop can be empty. class NoBody { public static void main(String args[]) { int i, j; i = 100; j = 200; // find midpoint between i and j while(++i < --j) ; // no body in this loop System.out.println("Midpoint is " + i); } } 该程序找出变量i和变量j的中间点。它产生的输出如下: Midpoint is 150 该程序中的while 循环是这样执行的。值i自增,而值j自减,然后比较这两个值。如果新的值i仍比新的值j小,则进行循环。如果i等于或大于j,则循环停止。在退出循环前,i

java循环结构while基础入门

1 while循环的基本格式 /* while循环的基本格式: while(判断条件语句) { 循环体语句; } 扩展格式: 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } 通过这个格式,我们就可以看到其实和for循环是差不多的。 for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } */ class WhileDemo { public static void main(String[] args) { //输出10次"HelloWorld" //for语句版 for(int x=0; x<10; x++) {

System.out.println("HelloWorld"); } System.out.println("--------------"); //while语句版 int x=0; while(x<10) { System.out.println("HelloWorld"); x++; } } } 2 while循环的实现 /* 练习:用while循环实现 左边:求出1-100之和 右边:统计水仙花数有多少个 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } for(初始化语句;判断条件语句;控制条件语句) {

循环体语句; } */ class WhileDemo2 { public static void main(String[] args) { //求出1-100之和 //for语句版本 int sum = 0; for(int x=1; x<=100; x++) { sum+=x; } System.out.println("sum:"+sum); System.out.println("--------"); //while语句版本 int sum2 = 0; int y=1; while(y<=100) { sum2+=y; y++; } System.out.println("sum2:"+sum2); System.out.println("--------"); } }

java循环练习及答案

循环练习 1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。用户可以循环进行输入,如果输入n就退出系统。(使用do-while循环实现) public class A2 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String ke=""; do { S ystem.out.println("请输入代码:"); k e=scanner.next(); i f(ke.equals("1")){ System.out.println("使用Java语言理解程序逻辑"); } i f(ke.equals("2")){ System.out.println("使用HTML语言开发商业站点"); } i f(ke.equals("3")){ System.out.println("使用SQL Server管理和查询数据"); } i f(ke.equals("4")){ System.out.println("使用C#开发数据库应用程序"); } i f(ke.equals("n")){ System.out.println("出错!"); break; } } while (true); } } 2、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(使用for循环实现)

class A3 { public static void main(String[] args) { double mon = 10000; for( int i = 0; i < 5; i++){ mon *= 1+0.003; } System.out.println("5年后,获得的本金是"+mon+"元"); } } 3、求整数1~100的累加值,但要求跳过所有个位为3的数。(使用for循环实现) public class A4 { public static void main(String[] args) { int i = 0,n=0; for (int a = 0; a < 10; a++) { for (int b = 0; b <= 9; b++) { if (b!=3) { i=a*10+b; n+=i; } } } n+=100; System.out.println(n); } } 4、输入一个正整数N,判断该数是不是质数,如果是质数输出“N是一个质数”,否则输出“N不是质数”。提示:质数的含义:除了1和它本身不能被任何数整除。(使用for循环实现) import java.util.Scanner; public class A5 { public static void main(String[] args) { int n,m=0; Scanner N=new Scanner(System.in); System.out.println("请输入要判断的数字:"); do{ n=N.nextInt(); for (int i = 2; i < n; i++) { if (n%i==0) { m=1; }

Java循环结构习题

A,求1到100以内的素数.要求每10个数换一行。 1.public class SuShu{ 2.public static void main(String[] args) { //求1到100的素数,实际就是求2 到99的素数,要知道的知识点是除2以为,所有的偶数都是素数。 3.inti,y;//必须在for语句之前定义,可以不对变量赋值 4.int t=0; 5.for(i=2;i<=99;i++){ 6. for( y=2;y<=i;y++) 7. { if(i%y==0) 8. break; 9. } 10.if(y==i){ 11.System.out.print(" "+y); 12.t++; 13.} 14. if(t%10==0){ 15.System.out.println(); 16. } 17. 18. 19.} 20.} 21.} B,一个自然数是素数,且它的数字位置任意对换后形成的数仍未素数,这种数叫做绝对素数,例如13 和31。编写一个程序,显示100以内的所有绝对素数。 分析,由题意可以知道必须是两位数字,而且只能有1、3、7、9组合,个位为5的能被5整数,不是素数。 publicclass Demo{ publicstaticvoid main(String[] args) { for(int i=10;i<=100;i++) { if(isSushu(i)&&isSushu(conveter(i))) { System.out.print(i+" "); }

} } staticboolean isSushu(int i)//i是否为素数 { int j=2; //用2到i-1之间的任一整数去整除 for(;j

FOR循环语句的翻译程序设计(简单优先法、三地址码)JAVA资料

学号:0121210340527 课内实践报告 课程名称编译原理 题目FOR循环语句的翻译程序设计(简 单优先法、输出三地址码) 学院计算机科学与技术 专业计算机科学与技术 班级1201 姓名李潇颖 指导教师林泓 2014 年12 月9 日

课内实践任务书 学生姓名:李潇颖专业班级:计算机1201班 指导教师:林泓工作单位:计算机科学与技术学院 题目: FOR循环语句的翻译程序设计(简单优先法、输出三地址码)初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课内实践工作量及其技术要求,以及说明书撰写等具体 要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码三地址码的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课内实践报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课内实践报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名:年月日 系主任(或责任教师)签名:

java循环结构的示例

示例讲解 1、最大公约数 问题:求两个自然数的最大公约数。 这两个都是基础的数学问题,最大公约数指两个数字公共的约数中最大的,例如数字6的约数有1、2、3、6,数字9的约数有1、3、9,则数字6和数字9的公共约数有1和3,其中3是最大的公约数。 第一种思路:从1开始循环,每次把符合要求(即同时是两个数字的约数)的值都存储起来,那么最后一个存储起来的就是最大的约数。 则实现的代码如下: int n = 6; int m = 9; int result = 1; for(int i = 1;i <= n;i++){ if((n % i == 0) && (m % i == 0)){ result = i; } } System.out.println(result); 使用该思路,每次都存储得到的公共约数,那么最后一个存储的就是两个数字的最大公约数。 第二种思路:从两个数字中最小的数字开始循环,每次减1,那么第一次得到的公共约数就是所求的最大公约数。 则实现的代码如下: int n = 6; int m = 9; int result = n > m ?m : n;

for(int i = result;i >= 1;i--){ if((n % i == 0) && (m % i == 0)){ result = i; break; //结束循环 } } System.out.println(result); 当然,解决这个问题,还有很多其它的方法,这里演示的这两种实现只是最自然的实现而已,采用类似的原理也可以求两个数字的最小公倍数的结构。 2、百元百鸡问题 问题描述:每只母鸡3元,每只公鸡4元,每只小鸡0.5元,如果花100元钱买100只鸡,请问有哪些可能?说明:每种鸡的数量都可以为零。 其实这个问题是数学上的组合问题,只需要把所有的情况列举出来,然后来判断是否符合要求即可。这样的重复列举的问题,在程序上可以使用循环进行解决。 第一种思路:当母鸡的数量为0时,公鸡的数量从0-100,当公鸡的数量每变化一次,小鸡的数量就从0变化到100,使用如下数值组合来描述这个思路: 母鸡数量公鸡数量小鸡数量 0 0 从0变化到100 0 1 从0变化到100 0 2 从0变化到100 …… 1 0 从0变化到100 1 1 从0变化到100 …… 100 100 100 上面列举出了所有公鸡、母鸡和小鸡的数量都是0-100时的所有组合,总计是101的三次方种,这样的穷举结构直接存在嵌套,在程序实际实现时,通过循环之间的嵌套就可以实现,则实现的代码如下:

JAVA循环语句练习(后面有答案及代码,请在自己答题后再查阅答案)

一、选择题 1.下列语句序列执行后,m的值是() int a=10,b=3,m=5; if(a==b) m+=a; else m=++a*m; A)15 B)50 C)55 D)5 2.下列语句序列执行后,k的值是() int i=4,j=5,k=9,m=5; if(i>j||m

4.若a和b均是整型变量并已正确赋值,正确的switch语句是() A)switch(a+b);{......} B)switch(a+b*3.0){......} C)switch a{......} D)switch(a%b){......} 5.下列语句序列执行后,r的值是() Char ch='8'; int r=10; switch(ch+1){ case '7': r=r+3; case '8': r=r+5; case '9': r=r+6; break; default: r =r+8; } A)13 B)15 C)16 D)18 6.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是() A)switch(x+y){......} B)switch(ch+1){......}

C)switch ch{......} D)switch(a+b);{......} 7.下列语句序列执行后,k的值是() Int x=6,y=10,k=5; switch(x%y){ case 0:k=x*y; case 6:k=x/y; case 12:k=x-y; default:k=x*y-x; } A)60 B)5 C)0 D)54 8.下列语句序列执行后,r的值是() Char ch='A'; int r=6; switch(ch+5){ case 'A':r=r+3; case 'B':r=r+5; case 'C':r-=6; break; default:r/=2; } A)11B)3 C)2 D)9

Java 程序循环语句学习源代码 (2)

1.计算1-10之间的1+2+3…+10的和 public class Demo1 { public static void main(String[] args) { int i,s=0;//定义整数类型//注意自增变量i步数,不仅仅是整数,也可以是小数 for(i=0;i<=10;i=i+1) { s=s+i; } System.out.print("s="+s); } } 2.计算0-1 之间0.1+0.2+...0.9+1.0的和 public class Demo1 { public static void main(String[] args) { double i,s=0;//定义小数类型计算 0.1+0.2+0.3+0.4+....1.0 for(i=0;i<=1.0;i=i+0.1) { s=s+i;//1.s=0+0 2.s=0+0.1 3.s=0.1+0.2 } System.out.print("s="+s); } } 3.定义小数类型计算0.5+1.0+1.5+2.0+2.5+....5.0 public class Demo1 { public static void main(String[] args) { double i,s=0;//自增变量i步数,不仅仅是整数,也可以是小数 for(i=0;i<=5;i=i+0.5) { s=s+i;//1.s=0+0 2.s=0+0.5 3.s=0.5+1 } System.out.print("s="+s); } } 4.使用循环打印一行9个*

public class Demo1 { void main(String[] args) { int i//控制变量改变,自增变量(计数变量) for(i<=9;i++) { System.out.print("*");//注意打印的时候有没有换行 } } } 5.使用循环打印9行*(每行一个*) public class Demo1 { public static void main(String[] args) { int i,s=0;//控制变量改变,自增变量(计数变量) for(i=1;i<=9;i++) { System.out.print("*");//注意打印的时候有没有换行 System.out.print("\n"); } } } 6.使用循环求1+3+5+ (99) public class Demo1 { public static void main(String[] args) { int i,sum=0;//i,j控制变量改变,自增变量(计数变量)1+3+5+ (99) for(i=1;i<=100;i=i+2) { sum=sum+i;//sum=0+1;2.sum=1+3; } System.out.print("sum="+sum); } } 7.使用循环求1-100之间所有被5整除的所有的和 public class Demo1 { public static void main(String[] args) { int i,sum=0;//i,j控制变量改变,自增变量(计数变量)//1+5+10+15+20+。。。。。100(被5整除的所有的和) for(i=5;i<=100;i=i+5)

Java基础-while循环语句、循环嵌套

1.使用while循环,求1+11+111+1111+11111+111111。 public class Test { public static void main(String[] args) { int i = 0; double n = 0; double sum = 0; while(i<6){ n = n+Math.pow(10,i); sum =sum+n; i++; } System.out.println("1+11+111+1111+11111+111111="+sum); } } 2.求10的阶乘1x2x3x4…x10. public class Test { public static void main(String[] args) { int result = 1; for(int i = 10;i > 0;i--){ result *= i; } System.out.println("10!="+result); } } 3.求1+2+3……+1000的和,把和输出,计算每步结果中有多少个最后以8结尾的。 public class Test { public static void main(String[] args) { int sum = 0; int n = 0; for (int i = 1; i <= 1000; i++) { sum += i; if(sum%10 == 8){ n++; } } System.out.println("1+2+3……+1000="+sum); System.out.println("每步结果中以8结尾有"+n+"个."); } }

java循环结构程序设计题

循环结构程序设计 1、*求1+4+7+……+100之和。 int sum=0; for(int i=1;i<=100;i+=3){ sum+=i; } System.out. println ("1+4+7+……+100之和为:"+sum); 2、*求1到100之间的奇数之和与偶数之和。 int sumJs=0,sumOs=0; for(int i=1;i<=100;i++){ if(i%2==0) sumOs+=i; else sumJs+=i; } System.out.println("1~100的奇数和为:"+sumJs+"\n1~100的偶数和为:"+sumOs); 3、用循环程序求10的阶乘。 int product=1; for(int i=10;i>0;i--){ product*=i; } System.out.println("10的阶乘乘积为:"+product); 4、求1*3*5*...*19之积。 int productJs=1; for(int i=1;i<19;i++){ if(i%2!=0) productJs*=i; } System.out.println("1*3*5*...*19之积为:"+productJs); 5、从键盘输入一个正整数n,求1+2+3+...+n之和并输出。 int sum=0; Scanner input = new Scanner(System.in); System.out.println("输入一个正整数:");

int num=input.nextInt(); for(int i=1;i<=num;i++){ sum+=i; } System.out.println("1+2+3+...+n之和为:"+sum); 6、从键盘输入一个正整数,求出其阶乘并输出。 int productJc=1; System.out.println("输入一个正整数:"); int num1=input.nextInt(); for(int i=num1;i>0;i--){ productJc*=i; } System.out.println(num1+"的阶乘乘积为:"+productJc); 6A、求1-1/3+1/5-1/7+...-1/99+1/101之和。 double sum=0; int count=0; for(int i=1;i<102;i+=2){ count++; if(count%2==0) sum-=1.0/i; else sum+=1.0/i; } System.out.println("1-1/3+1/5-1/7+...-1/99+1/101之和为:"+sum); 6B、求20+21+22+...+263之和。 int sum=0; for(int i=20;i<264;i++){ sum+=i; } System.out.println("20+21+22+...+263之和:"+sum); 7、*求12+32+52+...+992之和。 int sum=0; for(int i=1;i<100;i++){ sum+=i*i; }

(完整版)java实验报告循环语句

Java程序设计实验报告(三)班级:学号:姓名:指导老师: 一、实验题目 ●熟悉Java程序框架 ●掌握循环语句的用法 二、实验内容 1. 编写程序,计算10的阶乘并输出运算结果。 2. 编写程序,计算1、2、 3...的累加和,条件是和小于50。 3. 编写程序在终端打印1~100之间的素数。 4. 编写程序,输出下列图案: * *** ***** ******* 三、实验步骤(给出源程序) 1: public class Test_jc { public static void main(String[] args) { long jc=1; int i; for(i=1;i<=10;) { jc=jc*i; i++; } System.out.println("jc="+jc); } } 2:public class Test_lj { public static void main(String[] args) { int i; int sum=0; for(i=1;;i++) {

sum=sum+i; if(sum>=50) break; } System.out.println("sum="+(sum-i)); } } 3:public class Test_su { public static void main(String[] args) { int i,j; label: for(i=1;i<=100;i++) { for(j=2;j

Java循环结构

Java循环结构 顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。 Java中有三种主要的循环结构: ?while循环 ?do…while循环 ?for循环 在Java5中引入了一种主要用于数组的增强型for循环。 while循环 while是最基本的循环,它的结构为: 只要布尔表达式为true,循环体会一直执行下去。 实例

以上实例编译运行结果如下:

do…while循环 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。 注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。如果布尔表达式的值为true,则语句块一直执行,直到布尔表达式的值为false。

实例 以上实例编译运行结果如下:

for循环 虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句—— for循环,使一些循环结构变得更加简单。 for循环执行的次数是在执行前就确定的。语法格式如下:

关于for循环有以下几点说明: ?最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。 ?然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。 ?执行一次循环后,更新循环控制变量。 ?再次检测布尔表达式。循环执行上面的过程。 实例

Java基础上机练习代码(循环语句)

1使用三种循环语句计算1+2+3+…100之间的和 For循环代码如下 public class Demo1 { public static void main(String[] args) { int i,s=0;//1.初始值,2.判断条件3.循环体 for(i=1;i<=100;) { s=s+i; i++; } System.out.println("s="+s); System.out.print("i="+i); } } While循环代码如下 public class Demo1 { public static void main(String[] args) { int i=1,s=0;//1.初始值,2.判断条件3.循环体

//循环,条件语句求1-100之间和(偶数的和) while(i<=100) { s=s+i; i++; } System.out.println("s="+s); System.out.print("i="+i); } } dowhile 循环代码如下 public class Demo1 { public static void main(String[] args) { int i=1,s=0;//1.初始值,2.判断条件3.循环体 do { s=s+i; i++; }while(i<=100); System.out.println("s="+s); System.out.print("i="+i);

} } 2使用循环语句计算1+2+3+…100之间偶数的和 方法一:让循环增量每次加2 public class Demo2 { public static void main(String[] args) { int i=0,s=0;//1.初始值,2.判断条件3.循环体for(;i<=100;i=i+2){ s=s+i; } System.out.println("s="+s); System.out.print("i="+i); } } 方法二:使用for循环,并用if语句判断是否是偶数public class Demo2 { public static void main(String[] args) { int i,s=0;//1.初始值,2.判断条件3.循环体//循环,条件语句求1-100之间和(偶数的和)

java基础知识(循环结构)

知识点: 3种常见的循环结构 break;continue关键字复习: 选择结构 讲解作业1 课堂任务: 任务一、 1.以下语句不能构成循环的语句是() A for语句 B while语句 C switch语句 D do while 语句2.break语句的作用是() A 只中断最内层的循环 B 只中断某一层的循环 C 借助于标号,可以实现任何层循环中断 D 只中断某一层的循环 3.下列语句序列执行后,a 值为()。int a=1; for ( int i=5 ; i>0; i-=2; ) a*=I; A 0 B 1 C 15 D 60 4.下列语句序列执行后,c值为()。int a=3, b=4, c=0; while ( (a++) < (- -b) ) ++c; A 0 B 1 C 2 D 3 5.列语句序列执行后,j 值为()。int m=3, n=6, k=0; while ( m1 ); A 1 B 5 C 2 D -1 7.程序改错 #1public class Te21{ #2public void main(String[] args) { #3int size=5; #4for ( int i=0; i<=size; i++){ #5for ( int j=i; j>=0; j- -) #6System.out.print( i ); #7Systme.out.print(); #8} #9} #10} 8.程序改错

《Java程序设计--循环语句》说课稿

《循环语句》说课稿 尊敬的各位领导: 大家好! 我叫***,来自于***,2002年毕业于郑州大学计算机及应用专业,毕业后直接来我院信息工程系,一直从事计算机相关课程的教学工作。 在不耽误工作的前提下,也为了不断地给自己充电,我于2005年考取了华中科技大学在职研究生,并于2008年顺利毕业取得工学硕士学位,同年被评为讲师。 今天我说课的题目是计算机应用专业二年级《Java程序设计》第三章第3节《循环结构—for语句》(转身书写题目)。本教学内容分2课时完成(其中理论和实训各位1学时),现我就教材、教法、学法及教学程序四方面进行说明。 说教材:本节课是第一课时是for语句,包括for语句的格式和功能以及简单的应用。for语句作为第一课时,是学习循环结构的基础,蕴藏着重要的循环思想、结构化程序设计思想。本节课的学习,同时也为即将学习的while、do-while 循环以及多重循环做准备,因此本节课的学习在java的循环控制结构中具有举足轻重的地位。 说目标:以布鲁姆的教学目标分类法的知识、能力、情感三个维度,结合本节教学内容和特点以及在教材中的地位,制定如下教学目标: ⒈知识目标:理解循环的概念;理解并掌握for循环语句的格式和功能,会运用流程图分析for循环语句的功能和执行流程;学会编写for的小程序。 ⒉能力目标:培养学生分析问题解决问题的能力; ⒊情感目标:渗透人文精神,即既要注重学生智慧的获得,又要注意学生情感的发展。 基于以上分析,我将本节课的教学重点确定为for循环语句的格式和功能,而教学难点则是理解循环的思想并尝试独立编程。 说学情:在此之前,学生已经学习了算法设计、输入语句、输出语句、赋值语句,并且接触了顺序结构以及分支结构的程序设计,有了一定的结构化程序设计思想,这就为本节课的学习起到了一个很好的铺垫作用。 说学法:而在学法上,选用以自主探究、合作学习为主的方法,以一系列问题促进主体学生的学习活动,让学生自己发现问题、解决问题,得到一般性结论,从而达到知识与能力的目标。 说教法:在教法上,我采用以任务驱动法为主,辅以引导发现、讲练结合的方法,旨在培养学生的探究型思维目标,实现学生在教师指导下的发现探索,让学生愉快的学习,在发现与探索中建构知识,发展能力,有效地渗透数学思想。 说教学过程:在具体的教学程序上,我分为七大版块: ①、课题引入、创设问题情境;(直接引入法) ②、新课讲解; ③、解决问题,分析执行过程: ④、设置“陷阱”,强调语句格式(阅读程序,分析功能); ⑤、突破难点,尝试独立编程; ⑥、归纳小结,再度延升。 在课题引入方面,我选用直接引入法,开始就画5个竖行排列的“*”,学生

JAVA语言基础04_循环结构(while、do…while、for)

1. 循环结构(while、do…while、for) 1.1. 什么是循环结构 在日常生活中,会有很多需要反复执行的事情,比如:每一年的4个季节,每一周的7天,每日的3餐,打印机每份文档打印50份,一圈跑道400米跑3圈,都是在反复执行的。 再看软件系统中的需求: 问题1:输出100行语句,每行语句都一样,即: ?行动是成功的阶梯,行动越多,登得越高! ?行动是成功的阶梯,行动越多,登得越高! ?行动是成功的阶梯,行动越多,登得越高! … 问题2:输出100行语句,每行语句都类似,即: ?第1,行动是成功的阶梯,行动越多,登得越高! ?第2,行动是成功的阶梯,行动越多,登得越高! ?第3,行动是成功的阶梯,行动越多,登得越高! ?… ?第100,行动是成功的阶梯,行动越多,登得越高! 问题3:计算1到50乘以8.88的结果 ?1×8.88 =8.88 ? 2 ×8.88 =17.76 ? 3 ×8.88 =26.64

? 4 ×8.88 =35.52 ?… ?50 ×8.88 =444 诸如此类问题都是在反复执行的,在软件系统中可以通过循环这种语法结构来解决。循环是程序设计语言中反复执行某些代码的一种计算机处理过程,是一组相同或相似语句被有规律的重复性执行。 对于循环来说,需要考虑两个要素,其一要素为循环体,也就是被反复执行的相同或相似的语句,其二要素为循环的条件,也就是循环得以继续执行下去的条件,常常以循环次数的方式体现。 常用的循环结构有:while、do-while、for。 1.2. while语句 1.2.1. while语句的执行逻辑 while语句是循环的一种常见语法结构,语法如下: 1.while( boolean表达式){ 语句块; 2.} while语句的执行过程为,首先计算boolean表达式的值,而后进行判断,若值为true则执行语句块,语句块执行完后再次判断boolean表达式的值,如果为true则继续执行语句块,如此循环往复,直到boolean表达式的值为false时退出while循环而执行while之后的语句。 1.2.2. while语句的流程图

相关主题
文本预览
相关文档 最新文档