JAVA代码练习基础语法部分—数据输入、case穿透现象、random
程序员文章站
2022-06-26 07:54:23
...
案例1(数据输入)
需求:一个寺庙住着三个和尚,他们的身高必须经过测量得出(键盘输入),请用程序实现获取这三个和尚的最高身高
package fundemental;
import java.util.Scanner;
public class demo001_Scanner {
/*
案例:三个和尚
需求:
一座寺庙里住着三个和尚,他们的身高必须经过测量得出(键盘输入),请用程序实现获取这三个和尚的最高身高
*/
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 temp_height = height1 > height2 ? height1 : height2;
int max_height = temp_height > height3 ? temp_height : height3;
System.out.println("最高的身高是:" + max_height);
}
}
总结:
这个简单的题主要有两个知识点:一是用户交互的Scanner,另外一个是三元运算符
-
用户交互Scanner
-
next() 与 nextLine() 区别
next():
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
-
总而言之用nextline就对了(用下面的就对了)
-
import java.util.Scanner; public class For_test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //下面其实就是while判断缓冲区里面还有没有有效的数据 //就是说当按下enter键的时候开始判断缓冲区有没有数据,只要有数据就不断地执行循环里的语句 //当循环里的语句执行完毕以后,接着进行while语句里面的循环,等待数据输入 while (sc.hasNextLine()) { System.out.println(sc.nextLine()); } } }
-
案例2(case穿透)
需求:一年有12个月,分属于春夏秋冬四个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
package fundemental;
import java.util.Scanner;
public class demo002_case {
public static void main(String[] args) {
/*
* 案例:春夏秋冬
* 需求:一年有12个月,分属于春夏秋冬四个季节
* 键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出
* 要点:case穿透
* */
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份");
while(sc.hasNextInt()){
int month = sc.nextInt();
switch (month){
// 所谓的case穿透现象就是下面的程序
//如果一直没有break,程序会一直往下case执行,每个case的里面的程序都会执行
//直到在一个case里面遇到了break才会跳出来。
case 1:
case 2:
case 12:
System.out.println("winter");
break;
case 3:
case 4:
case 5:
System.out.println("spring");
break;
case 6:
case 7:
case 8:
System.out.println("summer");
break;
case 9:
case 10:
case 11:
System.out.println("autumn");
break;
default:
System.out.println("你输入的月份有误");
}
}
}
}
总结:case这个其实也很简单,但是需要注意的就是case和break的结合使用的情况。
- 如果case匹配上以后,不停的执行case里面的程序,如果遇不到break是不会跳出来的,直接穿透进入匹配后的下一个case里面。
案例3(random)
这个案例主要是注意一下random.nextInt的方法
还有一个深刻的体会就是java基本都是类,一般都是先new出来一个要使用的类,再进行这个类的方法的调用。
package fundemental;
import java.sql.PseudoColumnUsage;
import java.util.Scanner;
import java.util.Random;
/*
案例:使用Random的猜数字的小游戏
*/
public class demo003_random {
public static void main(String[] args) {
Random random_number = new Random();
int number = random_number.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
System.out.println("请猜出一个数字");
while(sc.hasNextInt()){
int guess_number = sc.nextInt();
if (guess_number > number){
System.out.println("你猜的数字大了");
}
else if(guess_number<number){
System.out.println("你猜的数字小了");
}
else {
System.out.println("这次你猜对了");
break;
}
}
}
}
上一篇: 网红营销内容决定价值 品牌价值发生转变
下一篇: 企业微博营销时需要注意哪些细节