目录
一、Java基础语法
(一)运算符
1.两只老虎(三元运算符)
需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。
public class TwoTigers {
//大驼峰式命名:每个单词都大写(类名)
//小驼峰式命名:第一个小写,其他大写(变量名,对象名)
public static void main(String[] args) { //psvm
int weight1 = 180;
int weight2 = 200;
boolean b = weight1 == weight2 ? true : false;
System.out.println("b:" + b); //sout
}
}
输出结果:
b:false
2.三个和尚(三元运算符)
需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、
210cm、165cm, 请用程序实现获取这三个和尚的最高身高。
public class ThreeMorks {
public static void main(String[] args) {
int height1 = 150;
int height2 = 210;
int height3 = 165;
//先比较前两个
int tempHeight = height1 > height2 ? height1 : height2;
//前两个中较大的和第三个比较
int maxHeight = tempHeight > height3 ? tempHeight : height3;
System.out.println("maxHeight:" + maxHeight);
}
}
输出结果:
maxHeight:210
(二)数据输入
1.三个和尚升级版
需求:需求:一座寺庙里住看三个和尚,他们的身高必须经过测量得出请用程序实现获取这三个和尚的最高身高。
import java.util.Scanner;
public class ThreeMorks1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个和尚的身高:");
int height1 = sc.nextInt();
System.out.println("请输入第二个和尚的身高:");
int height2 = sc.nextInt();
System.out.println("请输入第三个和尚的身高:");
int height3 = sc.nextInt();
int tempHeight = height1 > height2 ? height1 : height2;
int maxHeight = tempHeight > height3 ? tempHeight : height3;
System.out.println("maxHeight:" + maxHeight);
}
输入和输出:
(三)流程控制语句
1.奇偶数(if else)
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
import java.util.Scanner;
public class Odevity {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
if(number % 2 == 0){
System.out.println(number + "是偶数");
}else{
System.out.println(number + "是奇数");
}
}
}
输入输出:
2.春夏秋冬(switch)
需求: 一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
春:3、4、5
夏:6、7、8
秋: 9、10、11
冬:1、2、12
import java.util.Scanner;
public class Season {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
switch (month){
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("夏季");
break;
case 6:
case 7:
case 8:
System.out.println("秋季");
break;
case 9:
case 10:
case 11:
System.out.println("冬季");
break;
default:
System.out.println("你输入的月份有误"); //数据测试:正确、错误、边界
}
}
}
输入输出:
3.求偶数和(for循环)
需求: 一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
春:3、4、5
夏: 6、7、8
秋: 9、10、11
冬:1、2、12
public class EvenSum {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++){
if(i % 2 == 0){
sum += i;
}
}
System.out.println("1-100的偶数和是:" + sum);
}
}
输出结果:
1-100的偶数和是:2550
4.水仙花数(for循环)
需求:在控制台输出所有的“水仙花数”
什么是”水仙花数”?
①水仙花数是一个三位数
111 222 333 370 37 1
520999
②水仙花数的个位、十位、百位的数字立方和等于原数
123
public class NarcissisticNumber {
public static void main(String[] args) {
for(int i = 100; i < 1000; i++){
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100 % 10;
if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i){
System.out.println(i);
}
}
}
}
输出结果:
153
370
371
407
(三)猜数字(Random)
需求:程序自动生成-个1-100之间的数字, 使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
●如果猜的数字比真实数字大,提示你猜的数据大了
●如果猜的数字比真实数字小,提示你猜的数据小了
●如果猜的数字与真实数字相等,提示恭喜你猜中了
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
Random r = new Random();
int number = r.nextInt(100) + 1;
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你猜的数字:");
int guessNumber = sc.nextInt();
if (guessNumber > number) {
System.out.println("你猜的数字" + guessNumber + "大了");
}else if(guessNumber < number){
System.out.println("你猜的数字" + guessNumber + "小了");
}else{
System.out.println("恭喜你猜中了");
break;
}
}
}
}
输入输出:
(四)数组
1.数组最值
public class ArrayMax {
public static void main(String[] args) {
int[] arr = {12, 45, 98, 73, 60};
//取第一个数据为变量初始值
int max = arr[0];
for(int x=1; x<arr.length; x++){
if(arr[x] > max){
max = arr[x];
}
}
System.out.println("max:" + max);
}
}
输出结果:
max:98
(五)方法
1.最大值(无参数方法)
需求:设计一个方法用于打印两个数中的较大数
public class GetMax1 {
public static void main(String[] args) {
getMax(); //注意不能在main方法里定义方法
}
public static void getMax(){ //无参函数别忘记加括号,返回值为void
int a = 10;
int b = 20;
if(a > b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
输出结果:
20
2.最大值(带参数方法)
需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数
public class GetMax2 {
public static void main(String[] args) {
getMax(10,20);//使用常量
int a = 20;
int b = 10;
getMax(a, b);//使用变量
}
public static void getMax(int a, int b) { //注意没有return值,定义为void
if(a > b){
System.out.println(a);
}else{
System.out.println(b);
}
}
}
输出结果:
20
20
3.最大值(带返回值)
需求:设计一个方法可以获取两个数的较大值,数据来自于参数
public class GetMax3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
//方法一:使用变量保存
int max = getMax(a, b);
System.out.println(max);
//方法二:直接打印
System.out.println(getMax(a, b));
}
public static int getMax(int a, int b) {
if(a > b){
return a;
}else{
return b;
}
}
}
输出结果:
20
20
4.最大值(方法重载)
需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
public class GetMax4 {
public static void main(String[] args) {
System.out.println(compare(10, 20));
System.out.println(compare((byte) 10, (byte) 20));//byte要强制类型转换
System.out.println(compare((short) 10, (short) 20));
System.out.println(compare( 10L, 20L));//long要加后缀L,另float要加后缀F
}
public static boolean compare(int a, int b) {
System.out.println("int");
return a == b; //输出的是true或者false
}
public static boolean compare(byte a, byte b) {
System.out.println("byte");
return a == b; //输出的是true或者false
}
public static boolean compare(short a, short b) {
System.out.println("short");
return a == b; //输出的是true或者false
}
public static boolean compare(long a, long b) {
System.out.println("long");
return a == b; //输出的是true或者false
}
}
输出结果:
int
false
byte
false
short
false
long
false
5.数组遍历
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如: [11,22,33, 44, 55]
public class ArrayTraversal {
public static void main(String[] args) {
//数组元素静态初始化
int[] a = {11, 22, 33, 44, 55}; //注意为大括号
printArray(a);
}
public static void printArray(int[] a) {
System.out.print("["); //print不换行,println换行
for (int i = 0; i < a.length; i++) { //a.length表示数组长度
if (i == a.length-1) {
System.out.print(a[i]);
}else{
System.out.print(a[i] + ",");
}
}
System.out.print("]");//字符常量:单括号括起来的一个字符,字符串常量:双引号括起来的多个字符(0,1,多个)
}
}
输出结果:
[11,22,33,44,55]
6.数组最大值
需求:设计一个方法用于获取数组中元素的最大值,调用方法并输出结果
public class ArrayMax1 {
public static void main(String[] args) {
int[] arr = {12, 45, 98, 73, 60};
System.out.println(getMax(arr));
}
//两个明确:返回值类型:int,参数:int[] arr
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
}
输出结果:
98
后续内容见下一篇。