流程控制
复合语句:java的复合语句是以整个区块为单位的语句,所以又称块语句,复合语句you7开括号“{”开始,“}”结束
条件语句
“if”条件语句
“if”用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句
语法如下:
if(条件表达式){
语句序列
}
如果语句序列中只有一条语句,则可以省略条件语句中的“{}”例4.1
public class liti4_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int phoneNumber = 123456789; //定义一个int型变量phoneNumber并赋值123456789
if (phoneNumber != 84972266) { //判断phoneNumber是否为84972266
System.out.print("对不起,您拨打的号码不存在!"); //输出
}
}
}
结果:
流程图表示算法:
if...else语句
“if...else”:如果满足某条件,就执行某种处理,否则执行另一种处理语法如下:
if(条件表达式){
语句序列1
}else{
语句序列2
}
例4.2
package 百度;
import java.util.Scanner;
public class JEFF {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int password = 987654321; //定义int型password赋值987654321
if(123456789 == password) { //判断password是否为123456789
System.out.print("密码正确,欢迎登录"); //正确时的输出
}else { //否则
System.out.print("密码错误,拒绝登录");//错误时输出
}
}
}
结果:
流程图表示算法 :
if...else if多分支语句
if...else if:如果满足某条件,就进行某种处理,否则如果满足另一条件则执行另一种处理语法如下:
if(条件表达式1){
语句序列1
}else if(条件表达式2){
语句序列2
}...else{
语句序列n
}
例4.3
package 百度;
import java.util.Scanner;
public class JEFF {
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("欢迎光临,请问有多少人用餐?");//输出
int count = 9; //定义一个int型变量count赋值9
System.out.println("回答:"+ count + "人"); //输出
if(count <= 4) { //判断如果count小于或等于4则输出下行代码
System.out.println("客人请到大厅4人桌用餐");//输出
}else if(count > 4 && count <= 8) { //否则如果count大于4并且小于或等于8则输出下行代码
System.out.println("客人请到大厅8人桌用餐");
}else if(count > 8 && count <= 16) {
System.out.println("客人请到楼上包厢用餐");
}else { //否则输出下行代码
System.out.print("抱歉,我们目前没有那么大的包厢");
}
}
}
结果:
流程图表示算法:
switch多分支语句
swich语句中表达式的值必须是整型、字符型、字符串类型或枚举类型,常量值1--n的数据类型必须与表达式的值的类型相同
语法如下:
switch(){
case 常量值1:
语句块1
break;
...
case 常量值n:
语句块n
break;
default:
语句块n+1;
break;
}
例4.4
package 百度;
import java.util.Scanner;
public class JEFF {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);//打开键盘扫描器接收输入的数据
System.out.print("请输入成绩:"); //输出
int grade = sc.nextInt(); //将输入的数据存如int型变量grade里
switch(grade) { //计算表达式
case 10: //常量值为10
case 9:
System.out.print("成绩为优");//如果常量值为10,9则输出该行代码
break; //如果case开始执行,遇到break则停止
case 8:
System.out.print("成绩为良");
break;
case 7:
case 6:
System.out.print("成绩为中");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.print("成绩为差");
break;
default: //如果以上case常量值均与表达式的值不同,则执行default后的代码
System.out.print("成绩无效");
}
sc.close(); //关闭扫描器
}
}
结果:
流程图表示算法:
循环语句
while:也叫条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句
语法如下:
while(条件表达式){
语句序列
}
例4.5
package 百度;
import java.util.Scanner;
public class JEFF {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int x = 1; //定义一个int型变量x赋值1
int sum = 0; //定义一个int型变量sum赋值0
while(x <= 1000) { //判断x是否小于或等于1000
sum = sum + x; //sum表达式
x ++; //x自增
}
System.out.print("sum = "+ sum);//输出
}
}
结果:
流程图表示算法:
do...while循环语句
do...while:与while循环语句类似,区别是while先判断条件是否成立再执行循环,do...while循环语句则先执行一次循环后,在判断条件是否成立,do...while循环语句至少会循环一次
语法如下:
do{
语句序列
}while(条件表达式);
例4.6
package 百度;
import java.util.Scanner;
public class JEFF {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in); //打开键盘扫描器接收输入的数据
int password; //定义一个int型变量passdword
do { //先执行一遍
System.out.print("请输入6位数字密码:");
password = sc.nextInt(); //将输入的数据存如int型变量passdword里
}while(931567 != password); //判断条件是否成立
System.out.print("登录成功");
sc.close();
}
}
结果:
流程图表示算法:
for循环语句
or:for循环可以用来重复执行某条语句,直到某个条件得到满足,for循环有两种语句,一种是传统的for语句,一种是foreach语句
语法如下:
for(表达式1;表达式2;表达式3){
语句序列
}
例4.7
package 百度;
public class AS {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int sum=0; //偶数相加后的结果
for(int i =2;i<=100;i+=2) {
sum=sum+i; //指定循环条件及循环体
}
System.out.print("2+4+6+8+……+100的值="+sum); //输出结果
}
}
结果: