例题
1.找质数
public class Main1 {
public static void main(String[] args){
int count = 0;
for(int i = 101;i < 201;i++){
boolean flag = true;
//j从2开始,任何书对1取余都是0,所以从2开始
for(int j = 2;j < i;j++){
if(i % j == 0){
flag = false;
break;
}
}
if(flag){
System.out.println(i + "是质数");
count++;
}
}
System.out.println("共有" + count +"个质数");
}
}
2.评委打分
import java.util.Scanner;
public class Main1 {
public static void main(String[] args){
//定义一个数组,用来储存6为评委打分
int[] scoreArr = getScores();
for(int i = 0;i < scoreArr.length;i++){
System.out.println(scoreArr[i]);
}
//求出数组最小值
int min = getMin(scoreArr);
//求出数组最大值
int max = getMax(scoreArr);
//求出数组中6个分数的总和
int sum = getSum(scoreArr);
//求出去掉最高分和最低分后的平均成绩
int avg = (sum - max -min) / (scoreArr.length - 2);
System.out.println("打分为: " + avg);
}
//6位评委的分数
public static int[] getScores(){
int[] scores = new int[6];
Scanner sc = new Scanner(System.in);
for(int i = 0;i < scores.length;){
System.out.println("请输入成绩: ");
int score = sc.nextInt();
if(score >= 0 && score <= 100){
scores[i] = score;
i++;
}
else {
System.out.println("请重新输入0 ~100,当前i为" + i);
}
}
return scores;
}
//求数组的最大值
public static int getMax(int[] scoreArr){
int max = scoreArr[0];
for(int i = 0;i < scoreArr.length;i++){
if(scoreArr[i] > max ){
max = scoreArr[i];
}
}
return max;
}
//求数组的最小值
public static int getMin(int[] scoreArr){
int min = scoreArr[0];
for(int i = 0;i < scoreArr.length;i++){
if(scoreArr[i] < min ){
min = scoreArr[i];
}
}
return min;
}
//求数组的总和
public static int getSum(int[] scoreArr){
int sum = 0;
for(int i = 0;i < scoreArr.length;i++){
sum = sum + scoreArr[i];
}
return sum;
}
}
二维数组
静态
动态
public class Main1 {
public static void main(String[] args){
//每个季度的营业额
int[][] yearSum = {
{22,66,44},
{77,33,88},
{25,45,65},
{11,66,99}
};
int yearSumSum = 0;
for(int i = 0;i < yearSum.length;i++){
//计算每个季度的总营业额
int[] quarterSum = yearSum[i];
int sum = getSum(quarterSum);
System.out.println("第" + (i + 1) + "季度的总营业额为:" + sum + "元");
//计算全年总营业额
yearSumSum = yearSumSum + sum;
}
System.out.println("全年总营业额为:" + yearSumSum + "元");
}
//每个季度营业额的和
public static int getSum(int[] arr){
int sum = 0;
for(int i = 0;i < arr.length;i++){
sum = sum + arr[i];
}
return sum;
}
}
类 对象
类 对象
private
谁近用谁
若两个age
System.out.println(age);为public的
this.age为private的
快捷键:
//alt + insert
//alt + Fn + insert
再constructor ctrl a(全选) OK
select None 为空参
get 和 set
快捷键 再Getter and Setter ctrl a(全选) OK
ptg
直接右键,点击倒数第三个(ptg to javabean)
两个引用指向同一个对象
两个变量指向同一个空间,只要有其中一个变量对这个空间里的值发生了改变,那么其他变量再次访问的时候,就是改变后的结果
拳皇游戏
import java.util.Random;
public class Role{
private String name;
private int blood;
public Role(){
}
public Role(String name,int blood){
this.name = name;
this.blood = blood;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getBlood(){
return blood;
}
public void setBlood(int blood){
this.blood = blood;
}
//定义一个方法用于攻击别人
//让方法的调用者去攻击参数
public void attack(Role role){
//制定造成的伤害1 ~ 20
Random r = new Random();
int hurt = r.nextInt(20) + 1;
//修改剩余血量
int remainBlood = role.getBlood() - hurt;
//若剩余血量为负数,修改为0
remainBlood = remainBlood < 0 ? 0 : remainBlood;
//修改挨揍人的血量
role.setBlood(remainBlood);
//this表示方法的调用者
System.out.println(this.getName() + "举起拳头打了" + role.getName() + "一拳,造成了" + hurt + "点的伤害," + role.getName() + "还剩下" + remainBlood + "点的血");
}
}
public class GameTest {
public static void main(String[] args){
//创建第一个角色
Role r1 = new Role("乔峰",100);
//创建第二个角色
Role r2 = new Role("鸠摩智",100);
//开始格斗回合制游戏
while(true){
//r1攻击r2
r1.attack(r2);
if(r2.getBlood() == 0){
System.out.println(r1.getName() + "KO" + r2.getName());
break;
}
//r2攻击r1
r2.attack(r1);
if(r1.getBlood() == 0){
System.out.println(r2.getName() + "KO" + r1.getName());
break;
}
}
}
}