流程控制的分类,分支结构,循环语句
一、分支结构
(1)单分支条件判断语句
if ( 条件 ) {
代码 ;
}
只判断if后面小括号内的条件是否成立,如果成立,则执行代码块,不成立则跳出分支,
举例:
public class QuIfElse03 {
public static void main(String[] args){
int Num1 = 20,Num2 = 82;
if(Num1 + Num2 >= 50){
System.out.print("hello world");
}
}
}
(2)双分支
判断if后面小括号内的条件是否成立,如果成立,则执行代码块1,不成立则执行代码块2,
if( 条件 ){
代码 1 ;
} else {
代码2;
}
举例:
public class QuIfElse04 {
public static void main(String[] args){
double Num1 = 79.5,Num2 = 16.7;
if(Num1 > 10.0 && Num2 < 20.0){
System.out.print("Num1+Num2="+(Num1+Num2));
}else{
System.out.print("Num1*Num2="+(Num1*Num2));
}
}
}
(3)多分支
判断if后面小括号内的条件是否成立,成立则执行该条件下的代码,只要有一个条件成立,就结束分支,进行输出,
if(条件){
代码1;
} else if{
代码2 ;
} else if {
代码3;
}...else {
代码N;
}
举例;
import java.util.Scanner;
public class QuIfElse05 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入狗的年龄:");
int age = input.nextInt();
if(age<=2 && age >0){
System.out.print("你家狗的年龄相当于人类"+(10.5*age)+"岁了。");
}else if(age>2) {
System.out.print("你家狗的年龄相当于人类"+(21+(age-2)*4)+"岁了。");
}else{
System.out.print("你输入的年龄不符合要求,请输入人一个大于零的年龄");
}
}
}
2.switch语句
switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
swich (算数表达式) {
case 常量1:
代码1;
break;
举例:
import java.util.Scanner;
public class QuSwitchCase08 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = input.nextInt();
switch(score/10){
case 0: case 1: case 2: case 3: case 4: case 5:
System.out.print("您的成绩不合格");
break;
case 10: case 9: case 8: case 7: case 6:
System.out.print("您的成绩合格");
break;
}
}
}
3.嵌套分支
if(1){
if (2){
}
switch(3){
}
}
★多个变量构成复杂条件,建议用嵌套分支,一层只负责一个变量构建的条件
注意:只有外层 条件1 成立true,才能进行内层 条件2 的判断。
4.了解循环语句
概念:重复操作
四要素:
1、循环变量的声明和初始化
2、循环条件的构建
3、循环体
4、循环变量的更新
使用循环解决问题的步骤
1、是否存在重复操作
2、如果存在,确定四要素
3、选择循环结构,套用语法
while 和 do ...while 循环次数不确定
while先判断后执行
do ...while 先执行后判断
for 循环次数确定
4、确认循环是否正常结束
循环语句:
while(条件){
循环体;
}
do{
循环体;
}while(条件);
for ( 循环变量的声明和初始化 ; 条件 ; 循环变量的更新 ) {
循环体;
}
循环跳转语句
continue; 结束本次循环,进入下一次循环
break; 结束循环
// 九九乘法表
public class LJ05 {
public static void main(String[] args) {
for(int i = 1 ; i < 10 ; i++ ){
for(int j = 1 ; j <= i ; j++ ) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
//年历
public class LJ05 {
public static void main(String[] args) {
int total = 1, year = 2016;
final int BEGIN = 1900;
//累计整数年;
for (int i = BEGIN; i < year; i++) {
total += (i % 4 == 0 && i % 100 != 0) || i % 400 == 0 ? 366 : 365;
}
//控制月份
for (int i = 1, day = 0; i <= 12; i++) {
System.out.println(MessageFormat.format("\n\n{0}年{1}月:",year, i));
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int j = 1; j <= total % 7; j++) {
System.out.print("\t");
}
switch (i) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 2:
day = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 29 : 28;
break;
}
for (int j = 1; j <= day; j++) {
System.out.print(j + "\t");
if (total++ % 7 == 6)
System.out.println();
}
}
}