9.27-9.29
1、分支结构:if,if…else,switch
//三个分支结构的综合运用
package classe;
import java.util.*;
public class hello {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int age = s.nextInt();//输入
//输入年份判断闰年,并且算出输入年份的输入月份的1月距离该年份的1月1号有多少天
if((year % 4 == 0 && year % 100 != 0)||year %400==0)
//这是判断输入的年份是否是闰年
{
System.out.println("闰年有366天");
}
else
{
System.out.println("平年有365天");
}
int mouth = s.nextInt();
int a = 0;
switch (mouth)
{ case 12: {a+=31;}
case 11:{a+=30;}
case 10:{a+=31;}
case 9:{a+=30;}
case 8:{a+=31;}
case 7:{a+=31;}
case 6:{a+=30;}
case 5:{a+=31;}
case 4:{a+=30;}
case 3:{a+=31;}
case 1:{a+=31;}
case 2:
{
if((year % 4 == 0 && year % 100 != 0)||year %400==0)
{a+=29;}
else {a+=28;}
}
}
}
}
2、循环结构:while,do…while,for
//累加1~100的数,用三种循环体
int x = 0;
int sum=0;
while(x<=100)
//如果这里是x<100,那么x=100的时候该判断语句不成立,
//所以不会继续下面的循环语句
{
sum+=x;
x++;
}
System.out.println(sum);
int xa=0;
int suma=0;
do {
suma+=xa;
xa++;
}while(xa<=100);
System.out.println(suma);
int xb=0;
int sumb=0;
for(xb=0;xb<=100;xb++)
{
sumb+=xb;
}
System.out.println(suma);
输出结果为:
5050
5050
5050
注意:while和do…while的区别
while:只有条件符合while括号中的内容,才能进行while中的循环语句
do…while:无论是否符合条件都会进行一次花括号中的循环语句,如果条件不符合,循环结束;如果条件符合,循环继续
3、循环控制语句:continue(退出本次循环),break(退出整个循环)
int x=0;
for(x=0;x<=5;x++)
{
if(x==3) {continue;}//跳过x=3时的循环,后续的循环不会受到影响
if(x==5) {System.out.print(x);System.out.println();}
else {System.out.print(x+"、");}
}
int xa=0;
for(xa=0;xa<=5;xa++)
{
if(xa==3) {
break;
}//跳过x=3时的循环,后续的循环不再继续,break相当于退出最外层的那个循环
System.out.print(xa+"、");
}
输出结果为:
0、1、2、4、5
0、1、2、
4、循环嵌套(重点掌握)
package classe;
public class hello {
public static void main(String[] args) {
//1、打印九九乘法表和各种三角形
int i = 1;//表示行
int j = 1;//表示列
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();//表示每行打完就换行
}
//2、输出左三角形
for (int xc = 1; xc <= 5; xc++)//表示行
{
for (int y = 1; y <= xc; y++)//表示每一行应该有的星星个数
{
System.out.print("*");
}
System.out.println();
}
//3、输出正三角形
int c, d, k;
for (c = 1; c <= 4; c++) {
for (k = 1; k <= 4 - c; k++) {//每行的空格数量逐步减少
System.out.print(" ");
}
for (d = 1; d <= 2 * c - 1; d++) {//每行输出的*增多
System.out.print("*");
}
System.out.println();
}
//4、输出右三角形
for (int cw = 1; cw <= 5; cw++) {
for (int dw = 1; dw <= 5 - c; dw++)//每行的空格数量逐步减少
{
System.out.print(" ");
}
for (int dw = 1; dw <= cw; dw++) {
System.out.print("*");
}
System.out.println();
//5、左中空三角形:该三角形有一定规律,行数*2-1=该行的星星数
int w, e;//w表示行数,e表示每行的星星数
for (w = 1; w < 5; w++) {
for (e = 1; e <= 2 * w - 1; e++)
{
if (e == 1 || e == 2 * w - 1 || w == 4) {
System.out.print("*");
} else System.out.print(" ");
}
System.out.println();
}
//6、菱形
int sum, num, dum;//正三角形的输出,sum表示行,num表示每行的空格的循环
for (sum = 1; sum <= 4; sum++) {
//两个循环体不是嵌套的关系,是并列的关系
for (dum = 1; dum <= 4 - sum; dum++) {
System.out.print(" ");
}
//正三角形的循环
for (num = 1; num <= 2 * sum - 1; num++) {
System.out.print("*");
}
System.out.println()/;
}
//倒三角形的输出,当行数达到第三行的时候,上一个循环体会继续往下循环一次,所以会有第四行的情况,请不要在下面这个for循环中
//把sum=4,因为这样for循环会重复循环一次,会出现第四行的长度出现两次
//sum在第四行后就开始输出倒正三角形(相当于输出正着的空左三角形)
for (sum = 3; sum >= 1; sum--) {
for (dum = 1; dum <= 4 - sum; dum++) {
System.out.print(" ");
}
for (num = 1; num <= 2 * sum - 1; num++) {
System.out.print("*");
}
System.out.println();
}
}
}
//中空菱形
int sum, num, dum;//正三角形的输出,sum表示行,num表示每行的空格的循环
for (sum = 1; sum <= 4; sum++) {
//两个循环体不是嵌套的关系,是并列的关系
for (dum = 1; dum <= 4 - sum; dum++) {
System.out.print(" ");
}
//正三角形的循环
for (num = 1; num <= 2 * sum - 1; num++) {
if (num == 1 || num == 2 * sum - 1 ) {
System.out.print("*");
} else System.out.print(" ");
}
System.out.println();
}
//倒三角形的输出,当行数达到第三行的时候,上一个循环体会继续往下循环一次,所以会有第四行的情况,请不要在下面这个for循环中
//把sum=4,因为这样for循环会重复循环一次,会出现第四行的长度出现两次
//sum在第四行后就开始输出倒正三角形(相当于输出正着的空左/三角形)
for (sum = 3; sum >= 1; sum--) {
for (dum = 1; dum <= 4 - sum; dum++) {
System.out.print(" ");
}
for (num = 1; num <= 2 * sum - 1; num++) {
//判断num是否等于第一个和最后一个,如果等于,那么就输出星星,不是输出空格
if (num == 1 || num == 2 * sum - 1 ) {
System.out.print("*");
} else System.out.print(" ");
}
System.out.println();
}
}
}
以上所有的代码输出结果如下(为了让大家看的更加清楚每个题目后我加了一个换行语句)
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
*
**
***
****
*****
*
***
*****
*******
*
**
***
****
*****
*
* *
* *
*******
*
***
*****
*******
*****
***
*
*
* *
* *
* *
* *
* *
*