JavaDay04循环题目的简单思路(菱形,日历)随机数,函数

来源:互联网 发布:java开发外包 编辑:程序博客网 时间:2024/06/07 07:54

1.画菱形(通过起始位置,中心位置)

public static void print1(int row){
int center = row/2 + 1;
int start = center;
int end = center;
boolean flag = true; //上三角形
for(int i=1;i<=row;i++){
for(int j=1;j<=row;j++){
if(j>=start&&j<=end){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
if(start==1){
flag = false;
}
if(flag==true){
start--;
end++;
}else{
start++;
end--;
}
}
}

2.日历

解析:
1.1970.1.1是周四
2.获得1970.1.1到当前月的天数
3.获得当前月的第一天是周几?

import java.util.Scanner;

public class Demo4{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scan.nextInt();
System.out.println("请输入月份:");
int month = scan.nextInt();
int week = 4;
int day = 31;//这个月的天数

//总共天数
total = totalDay(year,month);
//计算这个月份第一天是星期几
week = (total-1+4)%7+1;

//这个月的天数
day = monthDay(year,month);

//打印
print(week,day);

}

//判断是否是闰年
public static int run(int year){
if((year%4==0&&year%100!=0)||(year%400==0)){
return 366;
}else{
return 365;
}
}

//这个月的天数
public static int monthDay(int year,int month){
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
return 31;
}else if(month==4||month==6||month==9||month==11){
return 30;
}else{
if(run(year)==366){
return 29;
}else{
return 28;
}
}
}

//总天数
public static int totalDay(int year,int month){
int total = 0;//1970年1月1日到现在的总共天数
//计算1970年到输入的年份月份总共的天数
for(int i=1970;i<year;i++){
total += run(i);
}

for(int j=1;j<month;j++){
total += monthDay(year,j);
}
return total;
}

//打印日历
public static void print(int week,int day){
int d = 1;
System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
//日历1号之前的空格
while(d<week){
System.out.print("\t");
d++;
}
for(int i=1;i<=day;i++){
System.out.print(i+"\t");
//换行
if(week%7==0){
System.out.println();
}
week++;
}
}
}

3.获得一个随机的四位正整数

Math.random() 取值范围[0,1)

int random = (int)(Math.random()*9000)+1000

4.break,continue 都有相当于goto的作用

outer:for(int i=0;i<5;i++){

System.out.println(i);

inner:for(int j=0;j<5;j++){

System.out.println(i);

continue outer;  或者break outer;

}

}

5. 函数的重载只与参数列表有关,与返回值无关


原创粉丝点击