1.流程控制语句
顺序结构(先执行A,再执行B的逻辑)
选择结构(如果…则…的逻辑)
if单选则结果(如果怎么样,则怎么样)
int a=1;
int b=3;
char c='a';
if(a+b+c>100) {
System.out.println("大于");
}
if(a+c<90) {
System.out.println("小于");
}
> 输出结果为大于,第二个条件不输出因为1+97=98>90
if else双选择结构(如果怎么样,则怎么样,否则怎么样)
int h=(int)(3*Math.random()+1);
System.out.println(h);
if(h=>2) {
System.out.println("大");
}else {
System.out.println("小");
}
> 输出结果大于或者等于2就会打印大
> 结果小于2就会打印小
if else if else多选择结构(当表达式1为真时,执行语句块1,否则,判断表达式2,当2为真时,执行语句块2,否则判断表达式3,如果表达式均为假,则执行语句块n+1,也就是else部分)
int a=(int)(100*Math.random());
System.out.println(a);
if(a<=20) {
System.out.println("小");
}else if(a<=40) {
System.out.println("中");
}else if(a<=60) {
System.out.println("大");
}else{
System.out.println("特大");
}
> 当随机数大于等于20小于等于40则输出中
> 大于等于40小于等于60输出大
> 大于60直接输出特大
switch多选择结构(一般用于多值判断,break结束switch语句)switch可以使用字符串String
int i=(int)(7*Math.random()+1);
System.out.println(i);
switch(i) {
case 1:
System.out.println("对");
break;
case 2:
System.out.println("对");
break;
case 3:
System.out.println("对");
break;
default:
System.out.println("错");
break;
}
> 满足case,则打印,执行break结束语句,否则执行default
循环条件(如果…则再继续…的逻辑)
while循环,在循环开始之前会计算一次布尔表达式的值,若条件为真,执行循环体,对于后面的每一次循环,都会在开始前重新计算一次
(语句中应有使循环结束的语句,不然会出现无限循环-死循环)
int i=1;
int sum=0;
while(i<=100) {
sum+=i;
i++;
}
System.out.println(sum);
> i<=100,每次循环累加的和赋给sum,i自加1,知道i>=100循环结束
for循环
int sum=0;
for(int i=1;i<=100;i++) {
sum+=i;
}
System.out.println(sum);
for(;;) {
System.out.println("66");//相当于while(true)
}
}
}/**
1.初始化int i=1;
2.判断i<=100;
3.执行语句sum+=i;
4.步进迭代i++;
5.回到第二步;
*/
嵌套循环(在循环语句内部再嵌套一个或多个循环)
for(int i=1;i<=5;i++) {
for(int b=1;b<=5;b++) {
System.out.print(i+"\t"); //"\t"是制表符
}
System.out.println();
}
> 输出结果为 1 1 1 1 1
> 2 2 2 2 2
> 3 3 3 3 3
> 4 4 4 4 4
> 5 5 5 5 5
for(int j=1;j<=9;j++) {
for(int i=1;i<=j;i++) {
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
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
break用于强制退出循环,不执行循环中剩下的语句
int to=0;
while(true) {
to++;
int a=(int)(5*Math.random());
System.out.println(a);
if(a==2) {
break;
}
}
System.out.println(to);
continue是终止本次循环,不执行循环体下面的语句,继续执行本次循环
int sj=0;
for(int i=100;i<=150;i++) {
if(i%3==0) {
continue;
}
System.out.print(i+"\t");
sj++;
if(sj%5==0) {
System.out.println();
}
}
> 输出结果
100 101 103 104 106
107 109 110 112 113
115 116 118 119 121
122 124 125 127 128
130 131 133 134 136
137 139 140 142 143
145 146 148 149
带标签的break和continue
label:for(int i=101;i<150;i++) {
for(int i2=2;i2<i/2;i++) {
if(i%i2==0) {
continue label;
}
System.out.println(i);
}
}
方法重载(是名字相同,完全独立的方法)
public static void main(String[] args) {
System.out.println(a(1,2,3));
System.out.println(a(1,2));
System.out.println(a(2.0,2));
System.out.println(a(2,2.0));
}
static int a(int q,int w) {
int sum=q+w;
return sum;
}
static int a(int q,int w,int e) {
int sum=q+w+e; //个数不同,构成重载
return sum;
}
static double a(double q,int w) {
double sum=q+w;//参数不同,构成重载
return sum;
}
static double a(int q,double w) {
double sum=q+w;//顺序不同,构成重载
return sum;
}
//返回值不同不构成重载