输入年月日,判断是该年的第几天。
//方法一
Scanner in = new Scanner(System.in);
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份:");
int mon=in.nextInt();
System.out.println("请输入日期:");
int day=in.nextInt();
int sum=0;
//假设2月有28天
switch (mon) {
case 1:
sum = day;
break;
case 2:
sum=31+day;
break;
case 3:
sum=31+28+day;
break;
case 4:
sum=31+28+31+day;
break;
case 5:
sum=31+28+31+30+day;
break;
case 6:
sum=31+28+31+30+31+day;
break;
case 7:
sum=31+28+31+30+31+30+day;
break;
case 8:
sum=31+28+31+30+31+30+31+day;
break;
case 9:
sum=31+28+31+30+31+30+31+30+day;
break;
case 10:
sum=31+28+31+30+31+30+31+30+31+day;
break;
case 11:
sum=31+28+31+30+31+30+31+30+31+30+day;
break;
case 12:
sum=31+28+31+30+31+30+31+30+31+30+31+day;
break;
default:
System.out.println("您输入有误!");
break;
}
//switch结构执行完后可以得到平年的天数
//下面判断是否是闰年,并且月份大于2月。如果是,天数加1,如果不是,保留原天数。
if ((year%4==0&&year%100!=0||year%400==0)&&mon>2){
// if(mon>2){
// sum++;
// }
sum+=1;
} else {
}
System.out.println(“今天是”+year+”年中的第”+sum+”天”);
//方法二
Scanner in = new Scanner(System.in);
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份:");
int mon=in.nextInt();
System.out.println("请输入日期:");
int day=in.nextInt();
int i=0;
switch (mon) {
case 12:
i = i + 30;
case 11:
i = i + 31;
case 10:
i = i + 30;
case 9:
i = i + 31;
case 8:
i = i + 31;
case 7:
i = i + 30;
case 6:
i = i + 31;
case 5:
i = i + 30;
case 4:
i = i + 31;
case 3:
i = i + 28;
case 2:
i = 31 + i;
case 1:
i = i + day;
break;
default:
break;
}
循环结构
【while循环】
1.格式:while(循环条件){
循环操作(循环中被重复执行的操作)
}
int i=1; //声明循环变量
while(i<=100){ // 判断循环条件
System.out.println(“杰瑞教育”); //执行循环体操作
i++; //更新循环变量
}
以上不为死循环,因为在system输出后加一句i++;执行100次。
2.特点:先判断,再执行。
3.while后面()中的表达式,计算后的结果必须为boolean类型。
4.循环变量一定要修改。
所有循环的流程:
- 声明循环变量
- 判断循环条件
- 执行循环体操作
- 更新循环变量
- 不断执行2.3.4步,直到循环条件不成立为止。
【do-while循环】
- 格式:do{
循环操作(先执行一遍循环操作)
}while(循环条件);(分号不可少)
- 特点:先执行,再判断。无论初始条件是否成立,do-while循环至少执行一次。
//找出所有的水仙花数 abc=a*a*a+b*b*b+c*c*c第一个水仙花数是153 例如:153=1*1*1+5*5*5+3*3*3.水仙花数是三位数.
int i=100;
int a;
int b;
int c;
while(i<1000){
a=i%10;
b=(i/10)%10;
c=i/100;
int sum=0;
sum=a*a*a+b*b*b+c*c*c;
if(i==sum){
System.out.println("水仙花数为:"+i);
}
i++;
}
//任意输入一个整数,将它倒序输出。
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = in.nextInt();
int j= 0;
int m=1;
while ((num/m)!=0) {
System.out.print((num/m)%10);
j++;
m*=10;
}
System.out.println("\n您输入的数字共有"+j+"位" );
【for循环】
- 格式:
for(初始化参数;条件判断;更新循环变量){
循环操作;
}
例如:
for(int i=0;i<100;i++){
System.out.println(“杰瑞教育”);
}
For循环执行的顺序是:初始化参数,条件判断,循环操作,更新循环变量。
- 特点:先判断,再执行。
- for循环中括号里的三个表达式可以依情况省略(但一般情况下不省略),但两个分号不能省略,缺一不可。
- 4. for(int i=0,j=0;i<100&&j<50;i++,j++){
System.out.println(“杰瑞教育”);
}
for循环中每个表达式均可拥有多个部分,表达式1和表达式3用逗号分隔,表达式2用&&或||连接。
//斐波那契数列
int num1=1;
int num2=1;
System.out.print(num1+"\t"+num2+"\t");
int num;
for(int i=3;i<=20;i++){
num=num1+num2;
num1=num2;
num2=num;
System.out.print(num+"\t");
if(i%5==0){
System.out.println();
}
}
【break】
break的作用:跳出本层循环,继续执行循环后面的语句。
注意:break只能往外跳一层,当循环套循环,或循环套switch时,只能跳出一层。
例如:for(int i=1;i<20;i++){
if(i%3==0){
break;
}
System.out.println(i);
}
System.out.println(“循环结束!”);
输出结果为:1
2
循环结束
【continue】
continue的作用:跳过本次循环剩余的代码,直接执行下一次循环。
注意:使用continue时,一定要注意更新循环变量的语句位置必须在continue上方!!!
【return】
return的作用:终止当前方法。(不但循环停止,循环后面的语句也不再执行。)
作用范围:continue<break<return.
//计算出1~100之间所有不能被3整除的整数的和
//当和大于(或等于)2000终止,求和以及对应的数字
int sum = 0;
int i;
for ( i = 1; i <= 100; i++) {
if ((i % 3) != 0) {
sum += i;
}
if (sum>=2000) {
break;
}
} System.out.println("和为:" + sum + "\n对应数字为:" + i);
//编写一个程序,最多接收10个数字,并求出其中所有正数的和。用户可通过输入999终止程序,统计用户输入的正数个数,并显示这些正数的和。
Scanner in = new Scanner(System.in);
int num;
int i=0;
int sum=0;
while(i<10){
System.out.println("请输入一个数:");
num = in.nextInt();
if(num==999){
System.out.println("正数个数为:"+i+"和为:"+sum);
break;
}
if(num>0){
sum+=num;
}
i++;
}
System.out.println("正数个数为:"+i+"和为:"+sum);