目录
1 顺序结构
顺序结构比较简单,就是代码一行一行的执行,本节之前写的所有代码都是顺序结构。
例如:
public static void main(String[] args) {
int a=10;
System.out.println(a);
System.out.println("hhhh");
double f=10.732;
System.out.println(f);
2 分支结构
2.1 if语句
基本语法形式1:
if(布尔表达式){
//条件满足时的要执行的语句
}
示例代码1:
public static void main(String[] args) {
int a=10;
int b=20;
if(a<b){
System.out.println(a);//a是10 b是20 a<b条件成立执行该语句
}
if(a>b){
System.out.println(b);//a是10 b是20 a>b条件不成立不执行该语句
}
基本语法形式2:
if(布尔表达式){
//条件成立是执行的语句
}
else{
//条件不成立时执行的语句
}
示例代码2:
public static void main(String[] args) {
int a=10;
int b=20;
if(a>b){
System.out.println(a);//a是10 b是20 a>b条件不成立不执行该语句
}
else{
System.out.println(b);//a是10 b是20 a>b条件成立执行该语句
}
}
基本语法形式3:
if(布尔表达式1){
//表达式1为true,执行的代码
}
else if(布尔表达式2){
//表达式2为true,执行的代码
}
else{
//表达式1和表达式2都为falses,执行的代码
}
示例代码3:
public static void main(String[] args) {
int a=10;
int b=10;
if(a>b){
System.out.println(a);//表达式1不成立,该语句不执行
}
else if(b>a){
System.out.println(b);//表达式2不成立。该语句不执行
}
else{
System.out.print("a=b=");//表达式1和表达式2都不成立,该语句执行
System.out.println(a);//注意:表达式成立时执行的语句可以是多条
}
}
注意事项1:
if语句可以嵌套使用,当if(布尔表达式)中的表达式成立时,就会执行对应的语句块 ,在这个对应的语句块中也可以使用if语句
例如:找出三个数中最大的数
public static void main(String[] args) {
int a=50;
int b=70;
int c=20;
System.out.print("最大的数是");
if(a>b){
//a>b不成立,所以不执行改语句块
if(c>a){
System.out.println(c);
}
else{
System.out.println(a);
}
}
else{
//a>b不成立,所以执行该语句块
if(c>b){
System.out.println(c);//c>b不成立,不执行该语句
}
else{
System.out.println(b);//c>b不成立,所以执行改语句
}
}
}
注意事项2:
if语句中的布尔表达式成立时,会执行if所对应的语句块。如果不加“{}”时,就会执行紧随其后的一条语句
例如:
public static void main(String[] args) {
int a=10;
int b=20;
if(a>b)
System.out.println(a);//此时if条件不成立,所以不会执行这条语句
System.out.println(b);//虽然if条件不成立,但是这条语句已经超出了if
//语句块,所以这条语句还会执行
}
2.2 switch语句
基本语法格式
switch ( 整数 | 枚举 | 字符 | 字符串 ){case 内容 1 : {内容满足时执行语句 ;[ break ;]}case 内容 2 : {内容满足时执行语句 ;[ break ;]}...default :{内容都不满足时执行语句 ;[ break ;]}
示例代码:
public static void main(String[] args) {
int day=5;
switch (day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期天");
break;
default:
System.out.println("输入错误");
break;
}
}
3 循环结构
3.1while循环
基本语法格式:
while(布尔表达式){
//要执行的语句块;
}
当布尔表达式为true,循环执行要执行的语句块,否则结束循环。
示例代码:输出1~10
public static void main(String[] args) {
int i=1;
while(i<=10){
System.out.println(i);
i++;
}
}
注意事项:
1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。
3.2 break语句
public static void main(String[] args) {
int i=1;
while(i<=10){
if(i%3==0){
System.out.println(i);
break;//遇到break语句,循环结束
}
i++;
}
}
3.3 continue语句
public static void main(String[] args) {
int i=1;
while(i<=10){
if(i%2!=0){
i++;
continue;//遇到continue语句,会直接进入下一次循环,不会执行后面的语句
}
System.out.println(i);
i++;
}
}
3.4 for循环
基本语法格式:
for(表达式1;布尔表达式2;表达式3){
//循执行的语句块
}
for循环执行的顺序是:
首次循环:首先执行表达式1,再执行布尔表达式2,然后执行循环体;最后执行表达式3。
其余循环: 首先执行布尔表达式2,然后执行循环体,最后执行表达式3。
结束循环: 布尔表达式的值为false.
示例代码:输出1~10之间的所有数
public static void main(String[] args) {
for (int i =1; i <=10 ; i++) {
System.out.println(i);
}
}
注意事项:
1:break和continue对for循环同样适用。
3.5 do while 循环
基本语法格式:
do{
//循环执行的语句
}while(布尔表达式);
do whiie 循环的执行顺序
首先执行循环语句,然后再判断布尔表达式是后为true.
因此,无论布尔表达式的值是否是true,第一次循环都会执行。
示例代码1:打印1~10
public static void main(String[] args) {
int i=1;
do{
System.out.println(i);
i++;
}while (i<=10);
}
示例代码2:演示布尔表达式不成立,循环语句执行一次
public static void main(String[] args) {
int i=0;
do{
System.out.println(i);
}while (i>0);//i=0 i>0表达式的值为false
}
4 逻辑控制综合案例
4.1 输出1000~1200之间所有的闰年
public static void main2(String[] args) {
for (int i = 1000; i <=1200 ; i++) {
if(i%100!=0&&i%4==0||i*400==0)
{
System.out.println(i);
}
}
}
4.2 计算1~100之间9出现的次数
public static void main(String[] args) {
int i=1;
int num=0;
while(i<=100){
int j=i;
/*
求出一个数各个位上的数字
循环执行以下操作
第一步:用这个数取余10的到个数
第二步:这个数除等10
第三步:判断这个数是不是0
*/
while (j>0){
if(j%10==9) {
num++;
}
j=j/10;
}
i++;
}
System.out.println(num);//9 19 29 39 49 59 69 79 89 中各出现一次9
//90 91 92 93 94 95 96 97 98中各出现一次9
//99中出现两次9 总共20个9
}