Practice| 流程控制
若整数a除以非零整数b,商为整数,且余数为零,
我们就说a能被b整除(或说b能整除a),a为被除数,b为除数,即b|a("|"是整除符号),读作"b整除a"或"a能被b整除。
如:6 | 3, 6能被3整除 或 3能整除6。
if ( x = y ) { //--->>报编译的错误
}
/* 从键盘分别输入年、月、日,判断这一天是当年的第几天 注:判断一年是否是闰年的标准: 1)可以被4整除,但不可被100整除 2)可以被400整除 要求:使用switch case实现 class YearMonthDay{ public static void main(String[] args){ java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("年:"); int year = input.nextInt(); System.out.print("月:"); int month = input.nextInt(); System.out.print("日:"); int day = input.nextInt(); int days = day; //月份天数的累加 switch (month){ case 12: days += 30; //前11个月份的天数 case 11: days += 31;//10月份; case 10: days += 30;//9月份 case 9: days += 31;//8月份 case 8: days += 31;//7月份 case 7: days += 30;//6月份 case 6: days += 31;//5月份 case 5: days += 30;//4月份 case 4: days += 31;//3月份 case 3: days += 28;//2月份 if((year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){ days++; } case 2: days += 31;//1月份 } //if((month == 3) && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){ // days++; 行不通的,如果是month=12,它是不会走这一步的。 //} System.out.println(year +"年" + month + "月"+ day + "日" +"至今已过" + days); } } */ /* 2、从键盘分别输入年、月、日,判断这一天是当年的第几天 注:判断一年是否是闰年的标准: 1)可以被4整除,但不可被100整除 2)可以被400整除 要求:使用循环实现 class YearMonthDay{ public static void main(String[] args){ java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("年:"); int year = input.nextInt(); System.out.print("月:"); int month = input.nextInt(); System.out.print("日:"); int day = input.nextInt(); int days = day; //累加零头的天数; for(int i = 1; i < month; i++){ //累加满月[2~month-1]的天数; 从2月开始计算;;;; if(i == 4 || i == 6 || i == 9 || i == 11){ days += 30; }else if(i == 2){ //注意注意注意,这里是else if,写成if就是它就会在i==4,6,9,11走else多加31天。 if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ days += 29; }else{ days += 28; } }else{ days += 31; } }System.out.println(year + "年" + month +"月" + "至今已过" + days); } } */ /* 从键盘分别输入年、月、日,判断这一天是当年的第几天 注:判断一年是否是闰年的标准: 1)可以被4整除,但不可被100整除 2)可以被400整除 要求:使用循环 + 数组实现 */ class YearMonthDay{ public static void main(String[] args){ java.util.Scanner input = new java.util.Scanner(System.in); System.out.print("年:"); int year = input.nextInt(); System.out.print("月:"); int month = input.nextInt(); System.out.print("日:"); int day = input.nextInt(); int days = day; int[] dayOfMonth = {31,28,31,30,31,30,31,31,30,31,30,31};//静态初始化 for(int i = 1;i < month;i++){ days += dayOfMonth[i-1]; if((i == 2) && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)){ days++; } } System.out.println(year +"年" + month + "月"+ day + "日" +"至今已过" + days + "天" + "仅剩" + (365-days) +"天"); } }
class Forloop{ public static void main(String[] args){ /* int sum = 0; for(int i = 1; i <=100; i++){ sum += i; } System.out.println(sum); */ /* int count = 0; for (int i = 1; i <= 100;i++){ if(i % 3 == 0){ System.out.print(i + "\t"); count++; if(count % 5 == 0){ System.out.println("\n"); } } } */ //方法一 /* for (int i = 1, mi = 0; i <= 1024; i*=2, mi++){ System.out.println("2的" + mi +"方为:" + i); } 2的0方为:1 2的1方为:2 2的2方为:4 2的3方为:8 2的4方为:16 2的5方为:32 2的6方为:64 2的7方为:128 2的8方为:256 2的9方为:512 2的10方为:1024 */ //方法二 /* 2的0方为:1 2的1方为:2 2的2方为:4 2的3方为:8 2的4方为:16 2的5方为:32 2的6方为:64 2的7方为:128 2的8方为:256 2的9方为:512 2的10方为:1024 */ int result = 0; for(int i = 0; result < 1024; i++){ result = (int) Math.pow(2,i); System.out.println("2的" + i +"方为:" + result); } } }
九乘九乘法口诀
九九乘法表 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 */ class Test10{ public static void main(String[] args){ //外层循环,一共有9行 for(int i = 1;i <= 9; i++){ //换行之前,要打印该行的n个式子 /* 当i=1, j=1,执行内层循环体,跳出内层 当i=2, j=1,2 当i=3, j=1,2,3*3 ... 当i=9,j=1,2,3,4,5,6,7,8,9 */ for(int j = 1;j <= i;j++ ){ System.out.print(j + "*" + i + "=" + (j*i) + "\t"); } System.out.println(); } } }
打印 质数
/* 找出1-100之间所有的素数(质数) */ class TestSu12{ public static void main(String[] args){ //方法1统计除i和它本身的约数的个数; /* for(int i = 2;i<=100; i++){ int count = 0; for(int j = 2;j < i;j++){ if(i % j == 0){ //j是i的约数 count++; } }if(count == 0){ System.out.println(i); } } for(int i = 2;i <= 100;i++){ //方法二找除了1和它本身以外约数的证据,找到就停止;定义一个boolean boolean flag = true; for(int j = 2; j<i;j++){ if(i%j == 0){ flag = false; //找到就终止这一层的循环; break; } }if(flag == true){ //注意注意这里是 == System.out.println(i); } } */ for(int i = 2; i<=100;i++){ int j; for(j = 2;j<i; j++){ if(i%j == 0){ //满足i%j == 0了,内循环从break除了 j<i break; //(i%j==0)没有满足过,内循环的结束 j==i } }if(j == i){ System.out.println(i); } } } }
打印菱形
/* i j k * 1 4 1 * * * 2 3 3 * * * * * 3 2 5 * * * * * * * 4 1 7 * * * * * * * * * 5 0 9 * * * * * * * 1 1 7 2*(4-1)+1 * * * * * 2 2 5 2*(4-2)+1 * * * 3 3 3 2*(4-3)+1 * 4 4 1 2*(4-4)+1 //方法一先打印上半部分,再打印下半部分; class TestLingXing{ public static void main(String[] args){ //上半部分 for(int i = 1; i <= 5;i++){ for(int j = 1; j <= (5-i); j++){ System.out.print(" "); }for(int k = 1; k <= (2*i-1); k++){ System.out.print("*"); } System.out.println(); //下半部分 }for(int i = 1; i <= 4;i++){ for(int j = 1;j <= i;j++){ System.out.print(" "); }for(int k = 1; k <= 2*(4-i)+1;k++){ System.out.print("*"); } System.out.println(); } } } */ class TestLingXing{ public static void main(String[] args){ for(int i = 1; i <= 9;i++){ //每一行:(1)打印空格(2)打印*(3)换行 //(1)打印空格 //上半+下半部分 --> " " if(i <= 5){//i=1,j=1,2,3,4打印4次; j <= (5-i) //i=2,j=1,2,3打印3次; //i=3,j=1,2打印2次; //i=4,j=1打印1次; //i=5,j=0不打印; for(int j = 1; j <= (5-i); j++ ){ System.out.print(" "); } //括号括号括号 }else{ //i = 6,j=1打印1次; j <= i - 5 //i = 7,j=1,2打印2次; //i = 8,j=1,2,3打印3次; //i = 9,j=1,2,3,4打印4次; for(int j = 1; j <= i - 5;j++){ System.out.print(" "); } } //(2)打印* //上半+下半部分 --> "*" if(i <= 5){ //i=1,j=1打印1次; j<=2*i-1 //i=2,j=1,2,3打印3次; //i=3,j=1,2,3,4,5打印5次; //i=4,j=1,2,3,4,5,6,7打印7次; //i=5,j=1,2,3,4,5,6,7,8,9打印9次; for(int j = 1;j <= (2*i-1); j++ ){ System.out.print("*"); } }else{ //i=6,j=1,2,3,4,5,6,7打印7次; j<=2*(9-i)+1 //i=7,j=1,2,3,4,5打印5次; //i=8,j=1,2,3打印3次; //i=9,j=1打印1次; for(int j = 1; j <= 2*(9-i)+1;j++){ System.out.print("*"); } } //(3)打印空格 System.out.println(); } } } /* * * * * * * * * * * * * * * * * //内循环*只打印首尾,在上边图形的基础上做下判断即可。 class TestLingXing{ public static void main(String[] args){ //上半部分 for(int i = 1; i <= 5;i++){ for(int j = 1; j <= (5-i); j++){ System.out.print(" "); }for(int k = 1; k <= (2*i-1); k++){ if(k == 1 || k == (2*i-1)){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); //下半部分 }for(int i = 1; i <= 4;i++){ for(int j = 1;j <= i;j++){ System.out.print(" "); }for(int k = 1; k <= 2*(4-i)+1;k++){ if(k == 1 || k == 2*(4-i)+1){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } } } */