04.01 Java语言基础(循环结构概述和for语句的格式及其使用)
A:循环结构的分类: for while do...while
B:循环结构for语句的格式:
for(初始化表达式;条件表达式;循环后的操作表达式){
循环体;
}
C:执行流程:
- 执行初始化语句
- 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
- 执行循环体语句
- 执行循环后的操作表达式
- 回到B继续
04.02 Java语言基础(循环结构for语句的练习之获取数据)
A: 输出数据1-10
for(int i = 1; i<=10;i++){
System.out.println(“i = ”+ i);
}
输出数据10-1
for(int i = 10; i>=1;i--){
System.out.println(“i = ”+ i);
}
B:注意实事项:
- 判断条件语句无论简单还是复杂结果是boolean类型
- 循环题语句如果是一条语句,大括号可以省略,多态语句,不能省略,建议永远不要省略
- 一般来说:有左大括号就没有分好,有分号就没有左大括号
04.03 Java语言基础(循环结构for语句的练习之求和思想)
A:案例:求出1-10之间数据之和
int sum = 0;
for(int i = 1; i<=10;i++){
sum = sum +i;
}
System.out.println(“sum = ”+ sum);
B:1.求出1-100之间偶数和
int sum = 0;
for(int i = 1; i<=10;i++){
if(i%2==0){
sum = sum +i;
}
}
System.out.println(“sum = ”+ sum);
2.求出1-100之间奇数和
int sum=0;
for(int i=1;i<=100;i=i+2){
sum=sum+i;
}
System.out.println("1-100奇数之和为:"+sum);
04.04 Java语言基础(循环结构for语句的练习之水仙花数)
A:案例:输出所有的水仙花数
水仙花数是指一个三位数,其各位数字的立方和等于该数本身
举例:153 就是一个水仙花数
153 =1*1*1+5*5*5+3*3*3=1+125+27=153
分析:1.100-999;
2.获取每个位数的值,百位,十位,个位
3.判断各个位数上的立方和是否等于这个数,如果等于就输出
for(int i= 100;i<=999;i++){ //获取100到999之间的数
int ge = i%10; //123%10
int shi = i/10%10; //12%10
int bai = i/100%10; //1%10
if(ge*ge*ge+shi*shi*shi*+bai*bai*bai==i){
System.out.println(i);
}
}
04.05 Java语言基础(循环结构for语句的练习之统计思想)
A:案例:统计”水仙花数”共有多少个
分析:1.需要有一个变量记录住水仙花数的个数
2.获取到所有的3位数
3.判断是否满足水仙花数
4.如果满足条件,计数器就自增
int count = 0;
for(int i= 100;i<=999;i++){ //获取100到999之间的数
int ge = i%10; //123%10
int shi = i/10%10; //12%10
int bai = i/100%10; //1%10
if(ge*ge*ge+shi*shi*shi*+bai*bai*bai==i){
count++;
}
}
System.out.println(i);
04.06 Java语言基础(循环结构while语句的格式和基本使用)
1.while循环的基本格式:
While(判断条件语句){
循环体语句;
}
2.while循环的完整格式:
While(判断条件语句){
循环体语句;
控制循环语句;
}
3.执行流程:
执行初始化语句
执行判断条件语句,看返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
执行循环语句
执行控制条件语句
回到B继续
4.在控制台输出数据1-10
int x = 1;
while(x<=10){
System.out.println(“x=”+x);
x++;
}
04.07 Java语言基础(循环结构while语句的练习)
A:求和思想:求1-100之和
int sum = 1;
int x = 1;
while(x<=100){
Sum += i; //sum = sum+i
x++; //让变量i自增
}
System.out.println(“sum=”+sum);
B:统计思想:统计”水仙花数”共有几个
int count = 0; //计数器
int i = 100;
while(i<=999){ //获取100到999之间的数
int ge = i%10; //123%10
int shi = i/10%10; //12%10
int bai = i/100%10; //1%10
if(ge*ge*ge+shi*shi*shi*+bai*bai*bai==i){
count++;
}
i++;
}
System.out.println(“count = ”+count);
C:某屌丝为了追求女神,写了一段代码示爱,但是女神也会java,改动一下把屌丝拒绝
int j = 1;
While(j<=10000){
System.out.println(“I love you !!”);
}
改动的代码:
While(j<=10000);{
不执行循环体
}
04.08 Java语言基础(循环结构do ...while语句的格式和基本使用)
A:循环结构 do...while语句的格式:
do{
循环体语句;
}while(判断条件语句);
完整格式:
初始化语句
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
B:执行流程:
- 执行初始化语句
- 执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
- 回到B继续
C:输出1-10的数据
Int i= 1;
do{
System.out.println(“i=”+i);
}while(i<=10);
04.09Java语言基础(循环结构三种循环语句的区别)
A:三种循环语句的区别:
do ...while循环至少执行一次循环体
而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句.
B:for 循环与while循环的区别:
如果想要在循环结束后,继续使用控制条件的那个变量,用while,否则用for.因为for 循环中定义的变量使用后 会被释放
04.10Java语言基础(循环结构注意事项之死循环)
A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环
B:两种最简单的死循环
while(true){.....}
for( ; ; ){.....}
04.11 Java语言基础(循环结构循环嵌套输出4行5列的星星)
A:案例:请输出一个4行5列的星星(*)图案
如: *****
*****
*****
*****
注意:System.out.println(“*”) 和System.out.print(“*”)的区别
for(int i = 1; i<= 4; i++){ //外循环决定行数
for(int j = 1; j<= 5; j++){ //内循环决定列数
System.out.print(“*”); //print不换行
}
System.out.println(“”); //println换行
}
B;外循环控制行数, 内循环控制列数
04.12Java语言基础(循环结构循环嵌套输出正三角形)
A:案例:请输出下列形状
*
* *
* * *
* * * *
* * * * *
for(int i = 1; i<= 5; i++){ //外循环决定行数
for(int j = 1; j<= i; j++){ //内循环决定列数
System.out.print(“*”); //print不换行
}
System.out.println(“”); //println换行
}
04.13Java语言基础(循环结构九九乘法表)
A:输出九九乘法表:
1 * 1 =1
1 * 2 = 2 2 * 2 = 4
......
for(int i = 1; i<= 9; i++){ //外循环决定行数
for(int j = 1; j<= i; j++){ //内循环决定列数
System.out.print(j+”*”+i+”=”+(i*j)+’\t’); //print不换行
}
System.out.println(“”); //println换行
}
B:代码优化:
‘\t’ tab键 ‘\r’ 回车 ‘\n’换行
04.14 Java语言基础(控制跳转语句break语句)
A:break : 只能用在switch 和 循环中
for(int j = 1; j<= 10; j++){
if(j == 4){
break; //跳出循环
}
System.out.print(j);
}
04.15 Java语言基础(控制跳转语句continue语句)
A:continue : 只能用在循环中
for(int i = 1; i<= 10; i++){
if(i == 4){
continue ; //终止本次循环,继续下次循环
}
System.out.print(i);
}
04.16 Java语言基础(控制跳转语句标号)
outer: for(int i = 1; i<= 10; i++){
System.out.print(“i = ”+ i);
inner: for(int j = 1; j<= 10; j++){
System.out.print(“j = ”+ j);
break outer; //outer就是标号,只要是合法的标识符就可以
}
}
04.17Java语言基础(控制跳转语句练习)
for(int i = 1; i<= 10; i++){
if(i%3 == 0){
// break; //我想在控制台输出2次:”java基础班”
// continue ; //我想在控制台输出7次:”java基础班”
System.out.print(java基础班”
);//我想在控制台输出13次:”java基础班”
}
System.out.print(java基础班”
);
}
04.18Java语言基础(控制跳转语句return语句)
A:return的作用
返回
结束方法
B:return 和break以及continue的区别
return 结束方法
break 跳出循环
Continue 终止本次循环继续下次循环
04.19Java语言基础(方法概述和格式说明)
A;为什么要有方法: 提高代码的复用性
B:什么是方法: 完成特定功能的代码块
C:方法的格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数2...){
方法体语句;
return 返回值;
}
D;方法的格式说明:
修饰符:目前就用 public static
返回值类型:就是功能结果的数据类型
方法名:符合命名规则即可.方便我们的调用
参数:
实际参数:就是实际参与运算的
形式参数:就是方法定义上的,用于接收实际参数的
参数类型:就是参数的数据类型
参数名:就是变量名
方法体语句:就是完成功能的代码
return :结束方法的
返回值:就是功能的结果,由return带给调用者
04.20Java语言基础(方法之求和案例及其调用)
A:如何写一个方法
明确返回值类型
明确参数列表
B:案例;求两个数据之和
import java.util.Scanner;
public static void mian(String[] args ){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入a值:");
double a = scanner.nextInt();
System.out.println("请输入b的值:");
double b = scanner.nextInt();
int sum=add(a,b);
System.out.println("两个数的和:" + sum);
}
public static int add(double a ,double b ){
return a+b ;
}
04.21_Java语言基础(方法的注意事项)
A;方法调用:
- 单独调用,一般来说没有意义,所有不推荐
- 输出调用,但是不够好.因为我们肯需要针对结果进行进一步的操作
- 赋值调用,推荐方案
B:注意事项:
- 方法不调用不执行
- 方法与方法是平级关系,不能嵌套定义
- 方法定义的时候参数之间用逗号隔开
- 方法调用的时候不用在传递数据类型
- 如果方法有明确的返回值,一定要有return带回一个值
04.22_Java语言基础(方法的练习)
案例: 键盘录入两个数据,返回两个数中的较大值
import java.util.Scanner;
public static void main(String[]) args{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入a值:");
int a = scanner.nextInt();
System.out.println("请输入b的值:");
int b = scanner.nextInt();
int max=getMAX(a,b);
System.out.println("最大的数是:" + max);
}
public static int getMAX (int a,int b){
if(a > b){
return a;
} else{
return b;
}
案例: 键盘录入两个数据,比较两个数是否相等???
import java.util.Scanner;
public static void main(String[]) args{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入a值:");
double a = scanner.nextInt();
System.out.println("请输入b的值:");
double b = scanner.nextInt();
boolean be = isEquals(a,b);
}
public static boolean isEquals(double a,double b){
return a==b;
}
04.23_Java语言基础(方法之输出星形及其调用)
案例: 根据键盘录入的行数和列数,在控制台输出星形
调用
import java.util.Scanner;
public static void main(String[]) args{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入行数:");
int a = scanner.nextInt();
System.out.println("请输入列数:");
int b = scanner.nextInt();
ShowStar(a,b);
}
public void ShowStar(int a, int b) {
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
System.out.print("*");
} System.out.println();
}
return;
}
04.24_Java语言基础(方法的练习)
案例:根据键盘录入输出相应的乘法表
import java.util.Scanner;
public static void main(String[]) args{
System.out.println("请输入N:(0<N<9)");
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
System.out.println("下面是"+N+"*"+N+"的乘法表");
chengfab(N);
}
public void chengfab(int a) {
for(int x=1;x<N+1;x++){
for(int y=1;y<=x;y++){
System.out.print(x+"*"+y+"="+x*y+" ");
}
System.out.println();
}
}
04.25_Java语言基础(方法重载概述和基本使用)
方法的重载; 在同一个类中,方法名相同,参数列表不同,与返回值类型无关
参数列表不同;
- 参数个数不同
public void add(int a,int b) {
return a+b;
}
public void add(int a,int b,int c) {
return a+b+c;
}
- 参数类型不同
public void add(int a,int b) {
return a+b;
}
public void add(double a,double b) {
return a+b;
}
- 参数顺序不同(算重载,但在开发中不用)
04.26_Java语言基础(方法重载练习比较数据是否相等)
A:比较两个数据是否相等
public static boolean isEquals(double a,double b){
return a==b;
}
B:参数类型分别为两个int类型,两个double类型,并在main方法中进行测试
public static void main(String[]) args{
boolean x = isEquals(10,2);
System.out.println(x);
boolean be = isEquals(10.5 , 10.5);
System.out.println(be);
}
public static boolean isEquals(double a,double b){
return a==b;
}
public static boolean isEquals(int a,int b){
return a==b;
}