Java程序,每条语句 必须 以分号 “;” 结尾
一、Java程序结构的分类
结构化程序设计 的流程控制 语句 有3种:顺序结构 、分支结构、循环结构。
顺序结构:从头到尾依次执行每一条语句。
分支结构 :根据不同的条件 执行不同的语句或语句体。
循环结构:为了重复 执行一类操作 而重复执行语句或者语句体
二、结构类型的详解
1、顺序结构
按语句的 顺序 一条一条依次执行。
public class order {
public static void main(String[] args){
String a="您好";
int b = 3;
double c = 0.14;
System.out.println(a);
System.out.println(c);
System.out.println(b);
}
}
2、分支语句
分置语句用于实现分支结构程序设计
public class branch_statement {
public static void main(String[] args){
int a = 10;
if(a%2==0){
System.out.println("变量a是偶数");
}
if(a%2!=0){
System.out.println("变量a是基数");
}
}
}
if语句
if语句有三种形式
A、单选条件语句
单选条件语句的语句格式为:
if(<表达式>)
<语句>
public class single_option_condition {
public static void main(String[] args){
int max;
int a=23;
int b=45;
System.out.println("比较a,b两者的大小");
max = a;
if(b>max){
max=b;
}
System.out.println("最大值是:"+max);
}
}
当条件表达式为真,则执行相关 的语句,否则不执行
说明:条件表达式 必须用 一对圆括号 “()”括起来
语句体可以是多条 语句,若是多条语句 ,必须用 一对花括号 ”{}“括起来构成一个复合语句
B、双选条件语句
双选条件语句的语句格式为:
if(<表达式 >)
<语句1>
else
<语句2>
import java.util.Scanner;
public class Multiple_choice_condition {
public static void main(String[] args){
int a,b,max;
Scanner src = new Scanner(System.in);
System.out.println("请输入第一个整数:");
a=src.nextInt();
System.out.println("请输入第二个整数:");
b=src.nextInt();
if(a>b){
max=a;
}
else{
max=b;
}
System.out.println("最大值是:"+max);
}
}
当 if语句中 的表达式为真时执行语句1,否则执行语句2
C、多选条件语句
多选条件的 语句格式为:
if(<表达式 1>)
<语句1>
else if(<表达式 2>)
<语句2>
else if(<表达式 3>)
<语句 3>
………………
else
<语句n>
import java.util.Scanner;
public class Multiple_choice_condition {
public static void main(String[] args){
int a,b,max;
Scanner src = new Scanner(System.in);
System.out.println("请输入一个成绩:");
a=src.nextInt();
if(a>90 && a<100){
System.out.println("优秀");
}
else if(a>70 && a<=90){
System.out.println("一般");
}
else if(a>60 && a<=70){
System.out.println("及格");
}
else
{
System.out.println("糟糕");
}
}
}
依次判断if中 的表达式,满足则执行对应 的语句,都不满足 则执行else下得语句
2.1、if语句的嵌套
if 语句中可以包含一个或 多个 if语句,格式一般为:
if(<表达式 1>)
if(<表达式 2>)
<语句1>
else
<语句 2>
else
if(<表达式3>)
<语句3>
else
<语句4>
import java.util.Scanner;
public class if_nest {
public static void main(String[] args){
String str;
Scanner src = new Scanner(System.in);
System.out.println("请输入一个长为6个字符的字符串");
str = src.next();
if(str != null){
if(str.length()==6){
System.out.println("输入正确,您输入的是:"+str);
}
else{
System.out.println("输入有误,请重新输入");
}
}
else{
System.out.println("未有参数输入,请检查");
}
}
}
执行时,按if 语句 的条件判断,满足后,进行执行 对应语句
内层的if语句嵌套在外层的if语句的if部分。
if语句嵌套使用时,应当注意else与if的配对关系:else总是与前面最近的还没有配对的if进行配对
2.1、switch 语句
在if语句中,布尔表达式的值只有TRUE和FALSE两种。
java提供一种可以提供更多选择的与具有:switch语句,也称开关语句
作用:实现多路分支程序
语句格式
switch(表达式){
case 常量1:
语句组1;
break;
case 常量2:
语句组2;
break;
case 常量n--1:
语句组n-1;
break;
default:
语句组n;
import java.util.Scanner;
public class switch_statement {
public static void main(String[] args){
int num;
Scanner sr = new Scanner(System.in);
System.out.println("请选择:\n" +
"1.主页\n" +
"2.博客\n" +
"3.项目\n" +
"4.附件");
num = sr.nextInt();
switch(num){
case 1:
System.out.println("欢迎来到主页");
break;
case 2:
System.out.println("欢饮进入博客");
break;
case 3:
System.out.println("欢饮进入项目");
break;
case 4:
System.out.println("欢饮进入附件");
break;
default:
System.out.println("未查询到呢,请检查输入是否有误");
}
}
}
使用switch语句时需要注意以下几点
1、表达式类型可以为byte、char、short、int 、enum类型,并且只能与常量进行比较,如果匹配成功,则执行case子句后面的语句序列。
2、每个case后面的常量表达式的值必须互不相同
3、一个case后可有多个语句(不必使用花括号),程序自动顺序执行case后面的语句;一个case后面也可以没有任何语句
4、每个case后面的常量表达式只起语句标号的作用,每执行完一个case后面的语句后,程序会不加判断的自动执行下一个case后面的语句。所以,执行完一个case分之后,需要使用break语句跳出switch语句,终止switch语句的执行
5、default 子句可选。当表达式的值与任何case子句中的常量都不匹配时,程序执行default子句后面的的语句序列,若无default子句,则程序退出switch语句
4、循环语句
循环语句用于反复执行一个语句块,知道满足终止循环的条件时为止。
一个循环一般包含以下三个部分
1、初始换部分:设置初始换条件,一般只执行一次
2、终止部分:设置终止条件,他应该时一个布尔表达式,每次循环都要求值一次,用以判断是否满足终止条件
3、循环体部分:被反复执行的语句块
java语言提供4种循环结构:当型循环、直到型循环、for循环、for each循环
4.1、while 语句
作用:实现“当型”循环结构
格式:while (<表达式>)
语句
说明:1、表达式称为循环条件表达式,一般为关系表达式,必须用“()”括起来
2、语句称为循环体,可以是单个或复合语句
执行过程:先计算表达式的值,当表达式的值为TRUE时,重复执行执行指定的语句;当表达式的值为FALSE,结束循环。
import java.util.Scanner;
public class while_statement {
public static void main(String[] args){
Scanner src = new Scanner(System.in);
int i,n,sum;
System.out.println("请输入一个整数:");
n = src.nextInt();
sum=0;
i=1;
while(i<=n){
sum=sum+i;
i++;
}
System.out.println("和是:"+sum);
}
}
4.2、do ……while 语句
1、作用:实现“直到型”循环结构
2、格式:
do
<语句>
while(<表达式>);
import java.util.Scanner;
public class do_while_statement {
public static void main(String[] args){
Scanner sr = new Scanner(System.in);
int i,n,sum;
System.out.println("请输入一个整数:");
n=sr.nextInt();
sum=0;
i=1;
do{
sum=sum+i;
i++;
}while(i<=n);
System.out.println("和是:"+sum);
}
}
说明:
1、表达式称为循环条件表达式,一般为关系表达式或逻辑表达式,必须用“()”括起来;
2、语句称为循环体,可以是单个语句或复合语句
3、do……while 语句以分号结束
3、执行规程:先执行语句,然后计算表达式的值,当表达式的值为TRUE时,就重复执行语句;直到表达式的值为FALSE才结束循环
5、for 语句
1、for 语句格式
for(<表达式1>;<表达式2>;<表达式3>)
<语句>
public class for_statement {
public static void main(String[] args)
{
int a;
for (a=0;a<10;a++){
System.out.println(a);
}
}
}
说明:
1、表达式1称为循环初始化表达式,通常为赋值表达式,简单情况下为循环变量赋值
2、表达式2称为循环条件表达式,通常为关系表达式或逻辑表达式,简单情况下为循环结束条件
3、表达式3称为循环增量表达式,通常为赋值表达式,简单情况下为循环变量增量
4、语句部分为循环体,他可以时单个或复合语句
for 语句的执行过程
1、计算表达式1的值
2、计算表达式2的值,若表达式2的值为真时,则转到3;若表达式2的值为假时,则结束循环
3、执行循环体语句
4、计算表达式3的值,返回2 继续执行
for语句可以和下列while语句等效
<表达式1>;
while(<表达式2>){
<语句>
<表达式3>;
public class for_equivalent {
public static void main(String[] args){
int a=0;
while(a<5){
System.out.println(a);
a++;
}
}
}
6、跳转语句
语句默认都是根据其在程序中的先后次序,从主函数开始,依次执行各个语句。当要改变程序执行的顺序,既不依次执行紧跟其后的语句,而跳到另一个语句处接着执行
6.1、break 语句
1、作用:终止switch语句与单循环语句的执行
对多重循环语句,可从内循环体调到外循环体
2、格式:break;
import java.util.Scanner;
public class break_statement {
public static void main(String[] args){
int a;
Scanner sr = new Scanner(System.in);
System.out.println("请输入一个正整数(1-6):");
a=sr.nextInt();
switch(a){
case 1:
System.out.println("1");//使用break语句,执行完满足的语句,自动跳出循环
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
case 4: //不使用break语句,后面的语句无论是否满足,都会执行,直到跳出或结束循环
System.out.println("4");
case 5:
System.out.println("5");
break;
case 6:
System.out.println("6");
}
}
}
6.2、continue 语句
1、作用:1、在while或do……while 语句中执行到continue语句时,程序不执行continue后的语句,而转向条件表达式处,开始下一次循环,即所谓的短路语句
2、在for语句中执行到continue语句时,程序不执行continue后的语句,而转向for语句中的第3表达式处,开始下一次循环
2、格式:continue;
public class continue_statement {
public static void main(String[] args){
for(int a=0;a<10;a++){
if(a%2==0){ //当参数为偶数时,跳出本次循环,进行下一次循环
continue;
}
System.out.println(a);
}
}
}