Java基础第二天(实训学习整理资料(二))
目录
一、扫描器
1、作用
2、用法
3、练习
二、运算符优先级
三、流程控制
1、顺序
2、判断
(1)if语句:
案例:
(2)switch语句
3、循环
一、扫描器
1、作用
实现在控制台接收用户的输入。
2、用法
/构建扫描器对象
Scanner sc = new Scanner(System.in);
//给用户提示
System.out.println("请输入一个数:");
//挂起程序,等待用户输入
sc.next() -- 返回字符串
sc.nextLine()--将整行内容作为字符串输入返回
sc.nextInt()--将用户输入的字符串转为int类型并返回
3、练习
1.判断两个数中的最大值
2.判断数的奇偶
ps:已在Java实训基础简单案例作业(简单笔记)(1022)中单独笔记。
二、运算符优先级
运算符 | 说明 |
---|---|
. [] () | 成员,小标,提高优先级 |
++ -- ~ ! | 自增,自减,按位取反,非 |
* / % | 乘,除,模运算(取余数) |
+ - | 加,减 |
<< >> >>> | 位左移,位右移,无符号右移 |
< > <= >= | 小,大,小等,大等 |
== != | 等,不等 |
& | 位与 |
^ | 位异或 |
| | 位或 |
&& | 逻辑与 |
|| | 逻辑或 |
? : | 三元 |
= *= /= %= += -= <<= >>= >>>= &= ^= |= | 赋值 |
ps:算术运算符>关系运算符>位运算符>逻辑运算符>赋值运算符
三、流程控制
1、顺序
从上到下、从左到右依次执行
2、判断
(1)if语句:
if(表达式){
逻辑代码
}
if(表达式){
逻辑代码1
}else{
逻辑代码2
}
if(表达式1){
逻辑代码1
}else if(表达式2){
逻辑代码2
}
···
else{
兜底逻辑
}
案例:
输入一个0~100之间的分数,<60 打印C,>=60 <80 打印B,>= 80 <= 100打印A,如果超出以上范围打印 输入有误!
应用场景:只要是出现判断的都可以用,如果有范围判断作为首选。
(2)switch语句
switch(变量){
case值1:
语句1;
break;
case值2:
语句2;
break;
····
default:
执行兜底
}
switch语句只能用于值匹配,不能比较范围。
ps:在jdk1.7之前选择项数据只支持byte/short/int/char,在1.7及以后的版本中加入了对String的支持。
练习:利用判断实现一个四则运算
输入两个数和一个运算符(+,-,*,/)
根据输入的运算符,实现对两个数的计算,并打印结果。
import java.util.Scanner;
public class Demo01 {
/** 案例:
输入一个0~100之间的分数,<60 打印C,>=60 <80 打印B,>= 80 <= 100打印A,如果超出以上范围打印 输入有误!
*/
public static void main(String[] args) {
/* Scanner sc=new Scanner(System.in);
/*System.out.println("请输入一个0~100之间的分数:");
int score = sc.nextInt();
if (score<60){
System.out.println("C");
}else if (score>=60 && score<80){
System.out.println("B");
}else if (score>=80 && score<=100){
System.out.println("A");
}else {
System.out.println("输入有误!请重新输入");
}
*/
/**
*数字电话
*/
/*System.out.println("请输入一个0~9之间的数:");
int phoneNum =sc.nextInt();
if (phoneNum == 1){
System.out.println("打电话给妈");
}else if (phoneNum == 2){
System.out.println("打电话给爸");
}else if (phoneNum == 3){
System.out.println("打电话给爷爷");
}else if (phoneNum == 4){
System.out.println("打电话给外公");
}else {
System.out.println("您拨打的是空号!");
}
switch (phoneNum){
case 1:
System.out.println("打电话给妈");
break;
case 2:
System.out.println("打电话给爸");
break;
case 3:
System.out.println("打电话给爷爷");
break;
case 4:
System.out.println("打电话给外公");
break;
default:
System.out.println("您拨打的是空号");
}
}*/
/**
* 用switch进行四则运算
*/
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入第一个数:");
Double a = sc1.nextDouble();
Scanner sc2 = new Scanner(System.in);
System.out.println("请输入第二个数:");
Double b = sc2.nextDouble();
Scanner sc3 = new Scanner(System.in);
System.out.println("请输入一个运算符(+,-,*,/):");
String c=sc3.next();
switch (c) {
case "+":
System.out.println("运算结果为:" + (a+b));
break;
case "-":
System.out.println("运算结果为:" + (a-b));
break;
case "*":
System.out.println("运算结果为:" + (a*b));
break;
case "/":
System.out.println("运算结果为:" + (a/b));
break;
default:
System.out.println("输入运算符错误,请重新输入!");
}
}
}
ps:记得导入相应的page包路径。
3、循环
(1)通用for循环
语法结构:
for(初始化;条件判断;步长设置){
//循环体
}
执行逻辑:
第一次循环:初始化,条件判断,循环体,步长设置
2-n次循环:条件判断,循环体,步长设置
案例:从1输出到100
for (int i=1;i<=100;i++){
System.out.println("i" );
}
案例:从1输出到100(只输出偶数)
for (int i=1;i<=100;i++){
if (i%2!=0){
continue;
}
System.out.println(i);
}
(2)continue和break的区别
break:跳出当前结构体(用于switch和循环语句)
continue:跳出本次循环进入下一次循环
(3)while循环
语法结构:
while(条件判断){
//循环体
}
执行逻辑:先条件判断再执行循环体
int i=0;
while (i<100){
i++;
System.out.println(i);
}
(4)do - while循环
语法结构:
do{
//循环体
}while(条件判断);
执行逻辑:先执行循环体再执行条件判断
(5)循环的练习
题目1:在控制台上输出五个*
for (int i = 0; i < 5; i++) { //控制每行中的元素
System.out.print("* ");
}
题目2:在控制台输出5行5列的*
for (int j=0; j<5; j++) { //控制行数
for (int i = 0; i < 5; i++) { //控制每行中的元素
System.out.print("* ");
}
System.out.println(); //输出换行符
}
题目3:在控制台输出等腰三角*
for (int i = 1; i <= 5; i++) {
//控制空格的循环
for (int j = 1; j <= 5 - i ; j++) {
System.out.print(" ");
}
//控制*号的循环
for (int k = 1; k <= i ; k++) {
System.out.print("* ");
}
System.out.println();
}
题目4:在控制台输出空心等腰三角*
for (int i = 1; i <= 5; i++) {
//控制空格的循环
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
//控制*号的循环
for (int k = 1; k <= i; k++) {
//第一行和最后一行正常打印
if (i ==1 || i == 5){
System.out.print(" * ");
}else {
//如果是当前行中的第一个或者最后一个就正常打印,否则输出为空格
if (k==1||k==i){
System.out.print(" *");
}else {
System.out.print(" ");
}
}
}
System.out.println();
}