java学习之路之javaSE基础3

所有代码都未经测试。。

1:for循环的格式?
for循环格式:
for(初始化表达式;条件表达式;循环后的操作表达式) {
循环体;
}
执行流程:
* a:执行初始化语句
* b:执行判断条件语句,看其返回值是true还是false
* 如果是true,就继续执行
* 如果是false,就结束循环
* c:执行循环体语句;
* d:执行循环后的操作表达式
* e:回到B继续。

用for循环完成如下案例

求1到10之间的数据之和
int sum = 0 ;
for(int i=1;i<=10;i++){
sum += i;
}
System.out.println(sum);

求1到100之间的偶数之和
int sum = 0;
for(int i=1;i<=100;i++){ //for(int i=0;i<=100;i+=2)
if(i % 2 == 0 ){
sum += i;
}
}
System.out.println(sum);

求1到100之间的奇数之和
int sum = 0;
for(int i=1;i<=100;i++){ //for(int i=1;i<=100;i+=2)
if(i % 2 != 0 ){
sum += i;
}
}
System.out.println(sum);

打印水仙花数:
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数。
* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
* 难点就是如何获取到每个三位数的每个位上的操作数
for(int i=100;i<=999;i++){ //设置所有水仙花数的范围100~999
int ge = i % 10; //利用取模操作符获取到各个位上的数
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
System.out.println(i);
}
}

统计水仙花数
int sum = 0;
for(int i=100;i<=999;i++){ //设置所有水仙花数的范围100~999
int ge = i % 10; //利用取模操作符获取到各个位上的数
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
//System.out.println(i);
sum += 1;
}
}
System.out.println(sum);

九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}

2:while循环的格式?要能看懂执行流程
while循环的基本格式:
while(判断条件语句) {
循环体语句;
}

while循环完整格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

用while循环完成如下案例
求1到100的和
int sum = 0;
int num = 1;
while(num <=100){
sum += num;
num++;
}
System.out.println(sum);

纸张折叠成珠穆朗玛峰高度的次数,随意写的。。
int count = 0;
int num = 1;
while(num <= 10000){
count++;
num *= 2;
}
System.out.println(count);

循环结构do...while语句的格式:
*
do {
循环体语句;
}while(判断条件语句);

完整格式;
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

执行流程:
* a:执行初始化语句
* b:执行循环体语句;
* c:执行控制条件语句
* d:执行判断条件语句,看其返回值是true还是false
* 如果是true,就继续执行
* 如果是false,就结束循环
* e:回到b继续。

三种循环语句的区别:
* do...while循环至少执行一次循环体。
* 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
* for循环和while循环的区别:
如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
两种最简单的死循环格式
* while(true){...}
* for(;;){...}


3:break,continue和return分别有什么用?
* return是结束方法;
* break是跳出循环;只能在switch和循环中使用。
* continue是终止本次循环继续下次循环;只能在循环中使用。

4:函数的概念?函数的格式?格式的解释说明
完成特定功能的代码块。
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
方法的格式说明:
* 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
* 返回值类型:就是功能结果的数据类型。
* 方法名:符合命名规则即可。方便我们的调用。
* 参数:
* 实际参数:就是实际参与运算的。
* 形式参数;就是方法定义上的,用于接收实际参数的。
* 参数类型:就是参数的数据类型
* 参数名:就是变量名
* 方法体语句:就是完成功能的代码。
* return:结束方法的。
* 返回值:就是功能的结果,由return带给调用者。

5:函数的调用
A:明确返回值类型的函数调用
* a:单独调用,一般来说没有意义,所以不推荐。
* b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
* c:赋值调用,推荐方案。
B:void类型的函数调用
* 单独调用
* 输出调用(错误)
* 赋值调用(错误)

6:函数的练习:
A:求两个数据之和
public static int add(int a,int b){
int sum = a + b;
return sum;
}

B:判断两个数据是否相等
public static boolean isEquals(int a,int b){
boolean bl = a == b;
return bl;
}

C:获取两个数中较大的值
public static int getMaxNum(int a,int b){
int maxNum = (a>b)? a:b;
return maxNum;
}

D:打印m行n列的星形矩形
Scanner sc = new Scanner();
int m = sc.nextInt();
int n = sc.nextInt();
printMN(m,n);
public static void printMN(int m,int n){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}

E:打印nn乘法表
Scanner sc = new Scanner();
int m = sc.nextInt();
int n = sc.nextInt();
public static void printNN(int m,int n){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}

7:什么是函数重载?
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
参数列表不同:
* 参数个数不同
* 参数类型不同
* 参数的顺序不同(算重载,但是在开发中不用)

posted @ 2018-07-22 21:53  王鸿云  阅读(168)  评论(0编辑  收藏  举报