**
1. 控制语句和现实逻辑对应
**
(1) 流程控制语句的作用是什么,分为哪几类?
答:流程控制语句是用来控制程序中各语句执行顺序的语句。分为顺序结构、选择结构循环结构
(2) 一个系统,本质上都是由什么组成的?
答:本质上都是有“变量、选择语句、循环语句”组成。
**
2. if单选泽结构
**
(1) 选择结构分为哪几种?
if但选择结构、if-else双选结构、if-else-if-else多选择结构、switch结构
(2) 单选择结构的语法结构是什么样的,请书写出来
if(布尔表达式){
语句块
}
(3) Math.random()函数的作用是什么?
产生[0,1)之间的随机数,包括0,但不包括1
**
3. if else 双选择结构
**
(1) If else双选择结构的语法结构是什么样的?请书写出来
if(布尔表达式){
语句块
}else{
语句块
}
例如:
if(a>b) {
System.out.println("a>b");
}else {
System.out.println("a!>b");
}
**
4. if elseif else 多选择结构
**
(1) 多选择结构的语法结构是什么样的?适用什么场景?
if(布尔表达式){
语句块
}else if(布尔表达式){
语句块
}else{
语句块
}
例如:
if (a>b) {
System.out.println("a>b");
}else if(a==b){
System.out.println("a==b");
}else {
System.out.println("a<b");
}
**
5. Switch语句的使用
**
(1) Switch的使用场景是什么?语法格式是什么样的?
用来做多值判断时使用。
switch(表达式){
case 值1:
语句序列1;
[break;]
case 值2:
语句序列2;
[break;]
.
.
.
[default:
语句序列n;
break;]
}
例如:
switch (a) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
default://default可有可无,如果有,前面没有和a匹配的,则默认执行default
System.out.println("NO");
break;
}
(2) 判断布尔值的时候能使用switch么?
不能,判断时只能使用字符串(jdk1.7以后)、整型、枚举(emun)、字符型。
(3) Break的作用是什么?case能穿透么?
Break的终止程序,后面的代码不执行。如果case后面没有break会导致case穿透,一直有break为止
例如执行下面程序:
int a = 2;
switch (a) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
case 4:
System.out.println(4);
default:
System.out.println("default");
}
执行结果:
**
6. While循环结构
**
(1) 循环结构主要分为哪两类?
一类是当型,另一类是直到型
当型:当布尔表达式条件为true时,反复执行某块语句,当布尔表达式的值为false时才终止循环。比如:while和for循环。
直到型:先执行某语句,再判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,比如do-while
(2) While的语法结构是什么样的?
while(布尔表达式){
语句块
}
while循环流程图
**
7. for循环详解_dowhile简介
**
(1) 请书写出dowhile的语法结构 dowhile和while的区别是什么?
dowhile结构:
do{
语句块
}while(布尔表达式); //最后分号不可省略
while结构:
while(布尔表达式){
语句块
}
区别:
dowhile是先执行一次语句块再做判断,while是先判断再执行
(2) for循环的语法结构是什么?用while能做的循环能用for循环改写么?
for(表达式1;表达式2;表达式3){
语句块
}
for循环的表达式可以为一个或者两个,或者三个,但是分号不能省略。
例如:
int sum = 0;
for (int i = 1; i<10 ; i++) { //三个表达式都有
sum += i;
}
for(int i = 1;i<10;) { //只有两个表达式
sum+=i;
i++;
}
int i = 1;
for(;;) { //三个表达式都没有
if(i<10) {
sum+=i;
i++;
}else {
break;
}
}
能用while做到的循环,for循环也能做到
**
8. 嵌套循环_循环相关练习
**
(1) 什么是嵌套循环?语法结构是什么样的?
答:在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环
for(表达式1;表达式2;表达式3){
for(表达式1;表达式2;表达式3){
语句块
}
语句块
}
例如:
for (int i = 0; i < 10; i++) { //外层循环
for (int j = 0; j < 10; j++) { //内层循环
System.out.println(j); //语句块
}
}
**
9. break和continue语句
**
(1) Break和continue的作用是什么?区别是什么?什么使用用break?什么时候用continue?
作用:
Break是用于强行退出循环,不执行剩下的语句
Continue是用于退出本次循环,不执行剩下的语句
区别:
Break是退出整个循环,不执行该循环体内后面的语句以及下一次循环
Continue:是退出当前循环,不执行本次循环后面的语句,继续执行下一次循环
使用:
Break是当需要终止循环时使用
Continue是当需要执行下一次循环时使用
例如:
//break的作用
for(int i = 0;i<10;i++) {
if(i==5) { //当i==5时,退出循环,5以后的循环不执行
break;
}
System.out.println(i);
}
执行结果:
//continue的作用
for(int i = 0;i<10;i++) {
if(i==5) { //当i==5时,不执行i==5的那次循环,执行下一次循环
continue;
}
System.out.println(i);
}
执行结果:
**
10. 带标签的break和continue
**
(1) Java为什么取消goto语句?
goto关键字很早就在程序设计语言中出现,尽管goto仍是java的一个保留字,但并为java语言中得到正式使用,java没有使用goto语句。如果使用大量的goto,会使程序逻辑变得混乱。
例如:
//带标签的continue用法
outer:for(int i = 1;i<5;i++) {
for(int j = 1;j<5;j++) {
if(i*j == 12) {
continue outer;
}
System.out.println(i*j);
}
}
执行结果:
带标签的continue用法的执行结果
1**
1. 方法的定义_形参_实参_返回值_语句块
**
(1) 什么是语句块?语句块中定义的变量的作用域是什么?
语句块(复合语句),是用花括号括起来的任意数量的简单java语句。块确定了局部变量的作用域,块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套再另一个块中,但是不能在两个嵌套的块内声明同样的变量,语句块可以使用外部的变量,而外部的不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。
(2) 什么是方法?为什么需要方法?
方法就是一段用来完成特定功能的代码片段,类似于其他语言的函数。方法用于定义该类或该类的实例的行为特征和功能实现,方法是类和对象行为特征的抽象,方法很类似于面向过程中的函数,面向过程中,函数是最基本单位,整个程序由一个个函数调用组成,面向对象中,整个程序的基本单位是类,方法是从属于类和对象。
(3) 方法是是带名字的语句块这句话对么?
对
(4) 什么是参数?什么是形参,什么是实参?
参数包括了形参是实参。形参是在方法声明时,用于接收外界传入的数据。实参是掉用方法时实际传给方法的数据。
public int Add(int a,int b) //a,b是形参
a(3,5);//3和5是实参
(5) 什么是返回值?一个方法可以没有返回值么?返回值一定得有类型么?为什么?
方法在执行完毕后返回给掉用他的环境的数据。可以没有返回值,但是不需要返回值的时候,必须使用void修饰方法。返回值一定要有类型,返回值类型是事先约定好的数据类型。
(6) 一个方法的书写格式是什么?请写出来。
[修饰符1 修饰符2] 返回值类型 方法名(形参列表){
语句块
}
- 方法的重载overload
(1) 方法的重载存在的意义是什么?
方法的重载实际是完全不同的方法,只是名称相同而已。
(2) 什么情况下会构成方法的重载?
1.形参列表的参数个数不同、参数类型不同、参数顺序不同构成重载,只有返回值不同,不构成重载
//以下三个方法构成重载
public int Add(int a,int b) {
return a+b;
}
public double Add(double a,double b) {/* 形参的数据类型和前一个的数据类型不同,构成重载*/
return a+b;
}
public double Add(double a,double b,double c) {/*行参的个数和前一个不同,构成重载*/
return a+b+c;
}
- 递归算法_递归头_递归体
(1) 递归的书写结构是什么?
[修饰符1 修饰符2] 返回值类型 方法名(形参列表){
if(结束条件){
方法名(形参列表);
return 返回值;
}else{
retuern 返回值;
}
}
(2) 递归的基本思想是什么?
答:基本思想是“自己掉用自己”
(3) 递归头的作用是什么?递归体的作用是什么?
递归头:什么时候不调用自身方法,也就是递归头结束的条件。如果没有头,将陷入死循环
递归体:什么时候需要掉用自身方法。