day04_review
review
方法的调用:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1. 无返回值的调用:
只能直接调用
2.有返回值的调用
1.直接调用
2.赋值调用(建议)
3.输出调用
一 [判断数据是否相等]
package method_TestWork; //导包
//(2) 判断两个数据是否相等(两个整数或者两个小数)
public class Code02 {
public static void main(String[] args) {
//思路:
//有返回值类型boolean 直接调用 赋值调用 输出调用 都能用
//参数列表 int类型或是double类型
//输出调用
System.out.println(method(122, 122));
//赋值调用
boolean b = method1(3.14, 3.23);
System.out.println(b);
}
public static boolean method(int a, int b) {
//if判断
if (a == b) {
return true;
} else {
return false;
}
}
public static boolean method1(double d1, double d2) {
if (d1 == d2) {
return true;
} else {
return false;
}
}
}
二.[获取两个数的较大值]
package method_TestWork;
//(3)获取两个数中较大的值(两个整数或者两个小数)
public class Code03 {
public static void main(String[] args) {
//返回值类型 int类型 double 类型
//参数列表数据类型 int类型 double 类型
//赋值调用
int max = compare(232,232343); //int类型
System.out.println(max);
//输出调用
System.out.println(method(343.4343,4343.3)); //double类型
}
//int 比较最大值
public static int compare(int a,int b){
int max = a>b?a:b;
return max;
}
//double比较最大值
public static double method(double d1,double d2 ){
if(d1>d2){
return d1;
}else{
return d2;
}
}
}
三.[三个数的最大值]
package method_TestWork;
//(5)求三个整数的最大值 (运用方法)
public class Code05 {
public static void main(String[] args) {
//返回值类型为 int
//参数形参 int
//三元运算符 或 if else if else if ...
//赋值调用
int max = compare(12,343,454);
System.out.println(max);
//直接调用
//method(2.32,23.34,454.443);
//输出调用
System.out.println(method1(23.323,232.34,434.45));
}
//赋值调用
public static int compare(int a, int b, int c) {
//if判断
if (a > b && a > c) {
return a;
} else if (b > a && b > c) {
return b;
} else if (c > a && c > b) {
return c;
} else {
return -1;
}
}
//直接调用
public static double method1(double a,double b,double c){
//三元运算符
double num = a>b?a:b;
double max = num>c?num:c;
return max;
}
}
四.[if优化后的代码案例]
package method_TestWork;
/*
6.定义一个方法名blackjack接收两个大于0的int类型值,
返回两个数中不大于21且最接近21的数,
如果两个数都大于21,则返回0;
*/
/*
public class Demo01 {
public static void main(String[] args){
System.out.println(method(21,19));
}
public static int method(int a,int b){
if(a>21&&b>21){
return 0;
}
if(a>21){
return b;
}
if(b>21){
return a;
}
return a>b?a:b;
}
}
*/
/*
6.定义一个方法名blackjack接收两个大于0的int类型值,
返回两个数中不大于21且最接近21的数,
如果两个数都大于21,则返回0;
*/
//1.有参有返回值 赋值调用
//2.都大于 不都大于(一个大于21 一个小于等于21) 都小于(取较大值作为返回值)
public class Demo01{
public static void main(String[] args) {
//赋值调用
int i = fun(18,19);
System.out.println(i);
}
public static int fun(int a,int b){
if(a>21&&b>21){
return 0;
}
if(a>21){
return b;
}
if(b>21){
return a;
}
int max =a>b?a:b;
return max;
}
}
五.[素数在方法中中的运用]
建议先写有需求的方法语句,然后再完善主方法------>提高代码的健壮性
/* 素数(质数): 只能被1和本身整除
2, 3, 5, 7, 11, 13, 17, 19
n % (1 ~ n) == 0
整除的次数是2次, n就是一个素数
10. 求100以内的所有素数?
求一个数是否是素数?
*/
public class Demo03 {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
//赋值调用
boolean b = isSuShu(i);
if (b == true) {
System.out.println(i + "是否为素数:" + b);
}
}
}
//1.有参有返回值 赋值调用
//2.遍历1---100判断是素数的输出
//3.素数取模为0的计数变量 count
//4.for循环判断取模的结果 并递增count
//5.判断count==2
public static boolean isSuShu(int num) {
//定义取模计数变量
int count = 0;
//for 循环
for (int i = 1; i <= num; i++) {
//判断除了1和本身之外有没有其他取模的次数
if (num % i == 0) {
count++;
}
}
//判断count
if (count == 2) {
return true;
} else {
return true;
}
}
}
六.[for循环的优化]
package method_TestWork;
/*
public class Demo04 {
public static void main(String[] args){
//给定一个数组,给定一个和
//获取数组中,,哪两个元素相加之后等于给定的和
//求这两个元素在数组中的索引(不要相加同一个元素)
int[] arr = {1,4,6,7,5};
int toytal = 9;
for(int i = 0;i<arr.length;i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] + arr[j] == toytal) {
System.out.println("两个元素的索引为:" + i + "----------------" + j);
}
}
}
}
}
*/
/*
1给定一个int[]
2.给定一个和
3.哪两个元素的和等于给定的和
4.两个元素不能相同
*/
/*public class Demo04{
public static void main(String[] args){
int[] arr = {1,2,4,6};
int sum = 10;
//for循环遍历数组
for(int i = 0;i<arr.length;i++){
for(int j = i+1;j<arr.length;j++){
if(arr[i]+arr[j]==sum){
System.out.println("两个元素的索引为:"+i+" "+j);
}
}
}
}
}*/
import java.util.HashMap;
public class Demo04{
public static void main(String[] args) {
int[] arr ={2,32,34,454,43,4};
int sum = 458;
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0;i<arr.length;i++){
map.put(arr[i],i);
}
for(int i = 0;i<arr.length;i++){
if(map.containsKey(sum-arr[i])&&i!=map.get(i)){
System.out.println(i+"--------"+map.get(sum-arr[i]));
return;
}
}
}
}
七.[打印等腰三角形]
package method_TestWork;
//打印一个等腰三角形
public class Tst06 {
public static void main(String[] args) {
for (int i = 1; i <= 6; i++) { //行数控制
for (int j = i; j <= 6; j++) { //空白打印不能超过行数上限
System.out.print(" ");
}
for(int k = 1;k<=i;k++){ //输出不加空格打印直角三角形
System.out.print("* "); //元素加空格起到元素右移对称的效果
}
System.out.println();
}
}
}
八.[九九乘法表]
package method_TestWork;
//打印九九乘法表
public class Tst06{
public static void main(String[] args){
//正排九九乘法表
for(int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){ //列数的上限不能超过行数
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
System.out.println("-----------");
//倒排九九乘法表
for(int i = 1;i<=9;i++){
for(int j =9;j>=i;j--){ //列数的下限不能低于行数
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
}
更多精彩