Java学习第四天
- 增强for循环
主要用于数组或集合的增强型for循环。
package com.lixiaochuan.structure;
public class ForDemo05 {
public static void main(String[] args) {
int[] numbers={10,20,30,40,50};//定义了一个数组
//遍历数组元素,并输出
for (int x:numbers){
System.out.println(x);
}
System.out.println("===========等价于==========");
for (int i=0;i<5;i++){
System.out.println(numbers[i]);
}
}
}
- break continue
- break控制任何循环语句的流程,用于强行退出循环,不执行循环中剩余的语句。
- continue用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
- 流程控制练习
- 打印三角形▲
package com.lixiaochuan.structure;
public class TestDemo {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i; j--) {
System.out.print(" ");
}
for (int j =1 ; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
Java方法详解
- 何为方法
Java方法是语句的集合,它们一起执行一个功能。- 方法是解决一类问题的步骤的有序组合;
- 方法包含于类或对象中;
- 方法在程序中被创建,在其他地方被引用;
- 命名规则,首字母小写,驼峰原则。
一个方法只完成一个功能,这样利于我们后期的拓展!
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
package com.lixiaochuan.method;
public class Demo01 {
public static void main(String[] args) {
// int sum = add(1, 2);
// System.out.println(sum);
test();
}
//加法
public static int add(int a,int b){
return a+b;
}
public static void test(){
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
package com.lixiaochuan.method;
public class Demo02 {
public static void main(String[] args) {
int max = max(20,20);
System.out.println(max);
}
//比大小
public static int max(int num1,int num2){
int result=0;
if (num1==num2) {
System.out.println("num1=num2");
return 0;//终止方法!!!
}
if(num1>num2)
result=num1;
else
result=num2;
return result;
}
}
java都是值传递
- 方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
规则
- 方法名称相同
- 参数列表不同
- 返回值类型可以相同可以不同
- 仅仅返回值类型不同不足以称之为方法的重载
package com.lixiaochuan.method;
public class Demo01 {
public static void main(String[] args) {
// int sum = add(1, 2);
// System.out.println(sum);
test();
}
//加法
public static int add(int a,int b){
return a+b;
}
public static void test(){
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >=i; j--) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
命令行传参
package com.lixiaochuan.method;
public class Demo03 {
public static void main(String[] args) {
//args.length 数组长度
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]"+args[i]);
}
}
}
- 可变参数(不定项参数)
Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(…)。
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。普通参数必须在它之前声明。
package com.lixiaochuan.method;
public class Demo04 {
public static void main(String[] args) {
printMax(1,2,3,4,5,0,10,99);
}
public static void printMax(double ...numbers){
if (numbers.length==0){
System.out.println("没有传参数!!");
}
double result=numbers[0];
//排序算法
for (int i = 0; i < numbers.length; i++) {
if (numbers[i]>=result) {
result = numbers[i];
}
}
System.out.println(result);
}
}
- 递归
递归就是自己调用自己!!
package com.lixiaochuan.method;
public class Demo05 {
public static void main(String[] args) {
double x=f(10);
System.out.println(x);
}
public static int f(int i){
if (i==1){
return 1;
}else{
return i*f(i-1);
}
}
}
作业:写一个计算器
要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
思路:
- 写四个方法:加减乘除
- 利用循环+switch进行用户交互
- 传递需要操作的两个数
- 输出结果
package com.lixiaochuan.method;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
System.out.println("请输入需要计算的两个数:");
Scanner scanner = new Scanner(System.in);
System.out.println("第一位数:");
int x = scanner.nextInt();
System.out.println("运算符:");
String s = scanner.next();
System.out.println("第二位数:");
int y = scanner.nextInt();
switch(s){
case "+":
System.out.println(add(x,y));
break;
case "-":
System.out.println(sub(x,y));
break;
case "*":
System.out.println(mul(x,y));
break;
case "/":
System.out.println(div(x,y));
break;
}
scanner.close();
}
public static double add(double x,double y){
return x+y;
}
public static double sub(double x,double y){
return x-y;
}
public static double mul(double x,double y){
return x*y;
}
public static double div(double x,double y){
return x/y;
}
}
写的比较垃圾回头再网上学习下别人怎么写的!