1.流程控制语句
**1. 顺序结构
**2. 选择结构
<分支结构>
if语句和switch语句
1.if(关系表达式){
语句体}
2.if (关系表达式){
语句体1;}
else{
语句体2;
}
3.if(关系表达式1){
语句体1;}
else if (关系表达式2){
语句体2;}
…
else{
语句体n+1;}
练习1:键盘录入两个数据,获取两个数据的较大值
System.out.println("请输入第一个数");
Scanner sc =new Scanner(System.in);
int a=sc.nextInt();
System.out.println("请输入第二个数");
int b=sc.nextInt();
if(a>b) {
System.out.println("较大的数是:"+a);
}else {
System.out.println("较大的数是:"+b);
}
}
练习2:键盘录入两个学生考试成绩,请根据成绩判断该学生属于哪个级别
90-100 优秀
80-90 好
70-80 良
60-70 及格
60以下不及格
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生的成绩:");
int grade=sc.nextInt();
if (grade>90&&grade<100) {
System.out.println("学生成绩为优秀");}
else if(grade>80&&grade<90) {
System.out.println("学生成绩为好");
}
else if(grade>70&&grade<80) {
System.out.println("学生成绩为良");
}
else if(grade>60&&grade<70) {
System.out.println("学生成绩为及格");
}
else if(grade<60) {
System.out.println("学生成绩为不及格");
}
else {
System.out.println("您输入的成绩有误");
}
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
格式解释:
表达式;byte,short,int,char
JDK5以后是枚举
JDK7以后 是字符串
case后面的值就是用来和表达式的值进行匹配的内容
break:表示中断的意思
default:所有的值都不匹配的时候,就执行default
计算表达式的值和case后的值进行比较,匹配则执行
练习1:根据键盘录入数值1,2,3…7输出对应的星期一,…星期日
Scanner sc=new Scanner(System.in);
System.out.println("请输入数字:(1-7)");
int weekday=sc.nextInt();
switch(weekday) {
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;
}
default:{
System.out.println("星期日");
break;
}
3. 循环结构*
1.初始化语句
2.判断条件的语句
3.循环体语句
4.控制条件语句
for , while, do…while,
for (初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
先执行初始化语句,在执行判断条件语句,…执行循环体语句,执行控制条件语句,回到判断条件语句
练习1:在控制台输出10次helloworld
for(int i=1;i<=10;i++) {
System.out.println("hello world");
}
练习2:获取1-5和5-1
for(int i=1;i<=5;i++) {
System.out.println(""+i);
}
for(int j=5;j>=1;j--) {
System.out.println(""+j);
}
练习3:1-5的数据求和
i
nt result=0;
for(int i=1;i<=5;i++) {
result=result+i;
}
System.out.println("结果为:"+result);
}
练习4:求1-100之间的偶数和
i
nt sum=0;
for(int i=1;i<=100;i++) {
if (i%2==0) {
sum=sum+i;
}
}
System.out.println("输出1-100之间的偶数和是"+sum);
练习5:打印输出所有三位数的水仙花数
所谓水仙花数,其各位数字的立方和等于该数的本身
153=111+555+333
获取三位数的个位十位 百位
int j=0;
for(int i=100;i<=999;i++) {
int a=i/100;
int b=(i%100)/10;
int c=((i%100)%10);
if(i==aaa+bbb+ccc) {
System.out.println(i);
j++;
}
}
System.out.println("水仙花数的个数是"+j);
}
练习6:统计水仙花数的个数
while(判断条件语句){
循环体语句;}
扩展格式
初始化语句;
while (判断条件语句){
循环体语句;
控制条件语句;
}
练习1:控制台输出十次helloworld
int i=1;
while (i<=10) {
System.out.println("hello world");
i++;
}
练习2;while循环求1-100数据和
int i=1;
int sum=0;
while (i<=100) {
sum=sum+i;
i++;
}
System.out.println("求和结果sum="+sum);
do{循环体语句;}
while(判断条件语句;)
扩展格式
初始化语句;
do{
循环体语句;
控制条件语句;}
while(判断条件语句;)
执行流程:
1.执行初始话语句
2.执行循环体语句
3.执行控制条件语句
4.执行判断条件语句
练习1:控制台输出10次helloworld
int i=1;
do {
System.out.println("hello world"+i);
i++;
}while(i<=10);
练习2:求和案例
int j=1;
int sum=0;
do {
if(j%2==1) {
sum=sum+j;
}
j++;
}while(j<=1000);
System.out.println("1-1000之间的偶数求和结果sum="+sum);
练习3:统计水仙花个数案例
int i=100;
int j=0;
do {
int a=i/100;
int b=(i%100)/10;
int c=((i%100)%10);
if(i==a*a*a+b*b*b+c*c*c) {
System.out.println("水仙花数"+i);
j++;
}
i++;
}while(i<=999);
System.out.println("水仙花数的个数为:"+j);
三种循环的区别
do…while 至少执行循环体一次
for 和while 必须判断条件成立才执行循环体
for 和while的区别
for循环结束后初始化的变量不能被使用,而while循环结束后,初始化变量可以继续使用
2.跳转控制语句
break 中断 应用场景switch语句,循环中 退出当前循环
continue 继续 应用场景 循环中不往循环体走,结束一次循环,继续下一次的循环