本帖最后由 战之都 于 2019-9-2 15:38 编辑
Java程序结构分类
1 顺序结构
特点:程序从上往下一行一行执行
2 条件结构
特点:程序从上往下根据条件成立与否执行不同的代码块
3 循环结构
特点:循环条件成立,程序一直执行循环体中的代码
顺序结构
语句:使用;分隔的一段代码成为一个语句
[Java] 纯文本查看 复制代码 //赋值语句
int a = 3;
//输出语句
System.out.println(a);
注意:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句。
[Java] 纯文本查看 复制代码 //赋值语句
int a = 3;
//输出语句
System.out.println(a);
//空语句
;
//输出语句
System.out.println("finishi............");
顺序语句就是按照从上往下的顺序执行的语句。
条件结构
if语句
1)语法1:
if(判断条件){
如果符合条件执行的代码;
}
案例1:从键盘输入一个成绩,如果成绩是60以下就是D
[Java] 纯文本查看 复制代码 public class scoreTest{
public static void main(String[] args) {
//使用Scanner接收键盘输入的内容
Scanner sc = new Scann (System.in);
//提醒用户输入成绩
System.out.println("请输入成绩");
//接收成绩,成绩为整形,sc.nextInt();就是用来接收整数
//并把它保存在sroce变量中
int sroce = sc.nextInt();
//接收性别
//sc.next()接收一个字符串
//charAt(0)截取字符串中的第一个字符
System.out.println("请输入性别: 男/女");
char sex = sc.next.charAt(0);
//关闭键盘输入
sc.close();
//判断成绩是否为60以下
if(sroce < 60){
System.out.println("成绩为D");
}
}}
2)语法2:
if(判断条件){
执行的代码块;
}else{
执行的代码块;
}
案例2:从键盘输入一个成绩,如果成绩是60以下就是D,否则就是A
[Java] 纯文本查看 复制代码 public class ScoreTest{
public static void main(String[] args){
//使用Scanner接收键盘输入的内容
Scanner sc = new Scann (System.in);
//提醒用户输入成绩
System.out.println("请输入成绩");
//接收成绩,成绩为整形,sc.nextInt();就是用来接收整数
//并把它保存在sroce变量中
int sroce = sc.nextInt();
//接收性别
//sc.next()接收一个字符串
//charAt(0)截取字符串中的第一个字符
System.out.println("请输入性别: 男/女");
char sex = sc.next.charAt(0);
//关闭键盘输入
sc.close();
//判断成绩是否为60以下
if(sroce < 60){
System.out.println("你的成绩为D");
}else{
System.out.println("你的成绩为A");
}
}
}
3)语法3:
if(判断条件1){
执行语句;
}else if(判断条件2){
执行语句;
}else if(判断条件3){
执行语句;
}else{
执行语句;
}
案例3:从键盘输入一个成绩,如果成绩是60以下就是D,成绩是60-70之间就是C,成绩是71-90之间就是B,90以上就是A
[Java] 纯文本查看 复制代码 if (sroce < 60) {
System.out.println("你的成绩是D");
} else if (sroce >= 60 && sroce < 70) {
System.out.println("你的成绩是C");
} else if (sroce >= 70 && sroce < 90) {
System.out.println("你 的成绩是B");
} else if (sroce >= 90) {
System.out.println("你的成绩是A");
} else {
// 如果输入负数等不符合以上条件的内容,提示输入不正确
System.out.println("输入不正确");
}
if语句嵌套
所谓的嵌套其实就是if语句中继续做其他的判断案例:从键盘输入一个成绩,如果成绩是60以下就是D,成绩是60-70之间就是C,成绩是71-90之间就是B90以上就是A,如果同时是女生就是D+,C+,B+,A+
[Asm] 纯文本查看 复制代码 // 判断成绩是否为60以下
if (sroce < 60) {
// 判断性别,根据性别输出D和D+
if (sex == '女') {
System.out.println("你的成绩是D+");
} else if (sex == '男') {
System.out.println("你的成绩是D");
} else {
System.out.println("您输入有误,请输入男/女");
}
} else if (sroce >= 60 && sroce < 70) {
if (sex == '女')
System.out.println("你的成绩是C+");
else if (sex == '男')
System.out.println("你的成绩是c");
else
System.out.println("您输入有误,请输入男/女");
} else if (sroce >= 70 && sroce < 90) {
if (sex == '女') {
System.out.println("你的成绩是B+");
} else if (sex == '男') {
System.out.println("你的成绩是B");
} else {
System.out.println("您输入有误,请输入男/女");
}
} else if (sroce >= 90) {
// 判断性别
if (sex == '女') {
System.out.println("你的成绩是A+");
} else if (sex == '男') {
System.out.println("你的成绩是A");
} else {
System.out.println("您输入有误,请输入男/女");
}
} else {
// 如果输入负数等,提示输入不正确
System.out.println("输入不正确");
}
特点
1)条件成立执行{}中的代码
2)一旦有一个条件成立,执行完{}中的代码直接跳出条件语句
3)如果if语句下只有一行代码,{}可以不写,但是 不建议,因为代码的阅读性就很差
4)else的作用是除了上边列出的情况之外的所有情况
出现问题
说明:在键盘录入时,用户可能乱输入,导致程序出问题,报异常
[Java] 纯文本查看 复制代码 public static void main(String[] args) {
// *升级版
// *问题:用户可能乱输入,导致程序出问题,报异啊,可以使用后边学的异常机制解决该问题
// *现在解决会出现局限性 // 使用scanner接收键盘输入的内容
Scanner sc = new Scanner(System.in);
// 提醒用户输入成绩
System.out.println("请输入成绩");
// 用户可能输入乱七八糟的东西,可以使用字符串来接收
String sroce = sc.next();
// 接收性别没有问题,因为他会截取字符串的第一个字符
System.out.println("请输入性别:男/女");
char sex = sc.next().charAt(0);
// 判断字符串数据是否相同使用equals()方法
if ("60".equals(sroce)) {
// 判断性别,根据性别输出D和D+
if (sex == '女') {
System.out.println("你的成绩是D+");
} else if (sex == '男') {
System.out.println("你的成绩是D");
} else {
System.out.println("您输入有误,请输入男/女");
}
} else {
// 如果输入负数等,提示输入不正确
System.out.println("输入不正确");
}
} switch语句语法格式[Java] 纯文本查看 复制代码 switch(表达式){ case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
} 案例:输入一个月份,判断是哪个季节 [Java] 纯文本查看 复制代码 public class Switchrest {
// 程序的入口
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 声明变量保存月份
System.out.println("请输入月份");
// 接收字符串类型
String month = sc.next();
// 使用switch语句判断月份,做不同的操作
// 注意:要比较的变量的类型,应该与case中的具体的数值的类型一样
switch (month) {
// 春天,如果多个条件执行的代码是一样的,可以将case语句整合
case "3":
case "4":
case "5":
System.out.println("春天");
break;
// 夏天
case "6":
case "7":
case "8":
System.out.println("夏天");
break;
// 秋天
case "9":
case "10":
case "11":
System.out.println("秋天");
break;
// 冬天
case "12":
case "1":
case "2":
System.out.println("冬天");
break;
// 相当于if语句中的else
default:
System.out.println("输入的月份有误,已启动自爆!!!");
// 如果default在最后那么break可以省略不写
break; }
}
}
特点
1)switch语句支持的数据类型有byte,short,int,char,JDK1.7之后支持String,JDK1.5之后支持枚举
2)switch语句中case的值的类型要跟传进来的变量的类型一致
3)case和default的顺序是可以随便写的
4)如果default在最后一行,break可以不写
5)break是用来跳出switch语句的,如果不写break,会继续往下执行,而if会自己跳出
6)switch同样也可以嵌套
7)default相当于if语句中的else
if与switch区别
1)做区间判断使用if语句
2)如果判断的数据比较少,而且数据类型是switch语句支持的,就是用switch,因为结构比较清晰
循环结构while循环
while(条件表达式){
执行语句;
}
[Java] 纯文本查看 复制代码 //需求:打印10行He11oworld
public class WhileDemo {
public static void main(String[] args) {
// 使用while循环输出10行Helloworld
// 定义一个变量用来记录循环次数
int i = 0;
while (i < 10) {
System.out.print("Helloworld" + i + "\n");
i++;// 条件递增表达式不要忘记写,可以避免死循环
}
}
}
特点
1)
条件成立就进入循环,不成立就不循环
2)一定要写条件递增表达式,避免死循环do while循环
do{
执行语句;
}while(条件表达式);
[Java] 纯文本查看 复制代码 public class WhileDemo {
public static void main(String[] args) {
// 要求:打印10行HelloWorld
int i = 0;
do {
System.out.println("HelloWord" + i);
i++;// 条件递增
} while (i < 10);
}
}
do while循环的特点就是,至少执行一次,先执行再判断
for循环
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;
}
[Java] 纯文本查看 复制代码 //打印10行HelloWorld
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("HelloWord");
}
}
特殊写法
[Java] 纯文本查看 复制代码 public static void main(String[] args) {
//这种写法大家知道,只要表达式合法就行,一般没人写,面试中可能碰到
int i = 0;
for (System.out.println("aa"); i < 3; System.out.println("cc")) {
System.out.println("dd");
i++;
}
}
[Java] 纯文本查看 复制代码
//打印结果
aa
dd
cc
dd
cc
dd
cc
特点
1)初始化表达式可以写到外边
2)三个表达式只要合法就行
三种循环区别
while和do while区别
while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
注意一个细节do while 后面的分号;
while和for的区别
1、for里面的两个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
2、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束时就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
3、最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。推荐使用while(true)
break和continue区别
1.break是跳出循环,continue结束本次循环,继续下一次循环
2.break和continue在单独使用时下边不能有其他代码,因为执行不到
3.break可以用在循环语句和switch中,continue可以使用在循环中
4.break和continue作用于离它最近的循环结构,可以通过给循环语句起名字来跳出指定的循环 |