这里写自定义目录标题
第6章 条件语句和选择结构
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
01 作业回顾
02 if语句
if语句(条件语句),当括号中的表达式(条件表达式)为true时,会执行代码块,否则不执行
//if语句(条件语句),当括号中的表达式(条件表达式)为true时,会执行代码块,否则不执行
if(true){//代码块
System.out.println("这句话会输出");
}
if(false){
System.out.println("这句话不会输出");
}
System.out.println("*************************************");
int x = 5;
if(x == 5){
System.out.println("1 x == 5"); //会执行,因为表达式x == 5为true
}
x = 6;
if(x == 5){
System.out.println("2 x == 5"); //不会执行,因为表达式x == 5为fasle
if else
只有条件满足,代码块才会执行,有且只有一个代码块会执行
如果没有满足的条件,就执行else代码块
当遇到满足的条件时,执行代码块,后面的就不看了
//条件表达式的结果要么为true要么为false
//if else语句,当条件表达式为true时,执行if代码块,否则执行else代码块
//if代码块和else肛码块有且只有一个会执行
int y = 10;
if(y == 10){
System.out.println("Y == 10");//会执行,条析表达式为true
}else {
System.out.println("Y != 10");//不会执行,条件表达式为true
}
y = 11;
if(y == 10){
System.out.println("Y == 10");//不会执行,条件表达式为false
}else{
System.out.println("Y != 10");//会执行,条件表达式为false
}
System.out.println("**********************************");
//只有条件满足,代码块才会执行,有且只有一个代码块会执行
//如果没有满足的条件,就执行else代码块
//当遇到满足的条件时,执行代码块,后面的就不看了
int z = 15;
if(z == 10){
System.out.println("z == 10");
}
else if(z == 12){
System.out.println("z == 12");
}else if(z == 15){
System.out.println("z == 15");//会执行
}else{
System.out.println("z是其他数");
}
z = 18;
if(z == 10){
System.out.println("z == 10");
}else if(z == 12){
System.out.println("z == 12");
}else if(z == 15){
System.out.println("z == 15");
}else{
System.out.println("z是其它数");//会执行
}
//没有块的if语句
int number = 5;
if(number < 0)//如果if语句不带块,那么只有if语句后面的第一条语句属于if
number = number + 10;
//上面的if相当于下面的if
if(number < 0){
number = number + 10;
}
number++;//是不属于if语句的
System.out.println(number);//6
//尽量使用带块的if,避免看错
嵌套的if语句
//嵌套的if语句
int a = 70; //分数
if(a >= 60){
if(a >= 90){
System.out.println("优秀");
}else if(a >= 80){
System.out.println("良好");
}else{
System.out.println("一般");//会执行
}
}else{
System.out.println("不及格");
}
03 switch
switch语句会在几个选项中做出选择
switch语句只能使用char,byte,short,int,string和枚举。
int类型
//switch语句会在几个选项中做出选择
int number = 2;
switch(number) {
case 1: //如果是number是1执行下面的代码,break是终止,后面的case和default都不看了
System.out.println(1);
break;
case 2: //如果number是2执行下面的代码,break是终止,后面的case和default都不看了
System.out.println(2);//会执行
break;
case 3: //如果number是3执行下面的代码,break是终止,后面的case和default都不看了
System.out.println(3);
break;
default: //如果上面的case都没有匹配成功执行default后面的代码
System.out.println("default");
break;
}
char型
char c = 'c';
switch (c) {
case 'a':
System.out.println('a');
break;
case 'b':
System.out.println('b');
break;
case 'c':
System.out.println('c');
break;
case 'd':
System.out.println('d');
break;
default:
System.out.println("其它字母");
break;
}
string型
String str = "abc";
switch(str) {
case "abc":
System.out.println("abc");
break;
case "def":
System.out.println("def");
break;
case "gh":
System.out.println("gh");
break;
case "mn":
System.out.println("mn");
break;
default:
System.out.println("其他字母");
}
long类型
编译时错误,不允许switch long类型的数据
long l = 15;
switch (l) { //编译时错误,不允许switch long类型的数据
case 1L:
break;
default:
break;
}
case
case的值必须是一个常量
case 不能使用表达式
如下:
04 练习
- 从键盘输入一个分数,如果60分以上,就打印及格,否则打印不及格。
//从键盘输入一个分数,如果60分以上,就打印及格,否则打印不及格。
//java.util.Scanner是一个扫描器
java.util.Scanner s = new java.util.Scanner(System.in);
int score = s.nextInt(); //会等待键盘的输入一个int数据,将输入结果赋值给score
//System.out.println(score);
if(score >= 60) {
System.out.println("及格");
}else{
System.out.println("不及格");
}
s.close();//关闭扫描器
2.从键盘输入小明的期末成绩,当成绩为100分时,奖励一台MacBook,当成绩为80.99时,奖励一部iphone7,当成绩为60~80时,
奖励一个苹果,其它分数,什么奖励也没有。
Scanner是java标准库中的一个类,它位于java.util包中
Scanner类的全名叫做java.util.Scanner
导入(使用)java.util包中的scanner
import java.util.Scanner;
ctrl + shift + o 自动导包
第二种思路:
- 编写程序,由键盘输入三个整数,分别存入变量num1,num2,num3中,从小到大输出。
//将最小数放到num1中,将最大数放到num3中,将中间数放到num2中
第一步,比较numb1和num2,如果num1大于num2,将两个数进行交换
第二步,比较numb1和num3,如果num1大于num3,将两个数进行交换
第三步,比较num2和num3,如果num2大于num3,将两个数进行交换
//3.编写程序,由键盘输入三个整数,分别存入变量num1,num2,num3中,从小到大输出。
Scanner s = new Scanner(System.in);
System.out.println("请输入num1");
int num1 = s.nextInt();
System.out.println("请输入num2");
int num2 = s.nextInt();
System.out.println("请输入num3");
int num3 = s.nextInt();
//将最小数放到num1中,将最大数放到num3中,将中间数放到num2中
//第一步,比较numb1和num2,如果num1大于num2,将两个数进行交换
int temp;//临时变量
if( num1 > num2) {
temp = num1;//将num1的值赋值给临时变量,先保存起来
num1 = num2;
num2 = temp;
}
//上面的if走完后,num1是小于num2的
//第二步,比较numb1和num3,如果num1大于num3,将两个数进行交换
if(num1 > num3) {
temp = num1;
num1 = num3;
num3 = temp;
}
//上面的if走完后,num3是小于num3的
//第三步,比较num2和num3,如果num2大于num3,将两个数进行交换
if(num2 > num3) {
temp = num2;//将num1的值赋值给临时变量,先保存起来
num2 = num3;
num3 = temp;
}
//上面的if走完后,num2是小于num3的
System.out.println("num1:" + num1);
System.out.println("num2:" + num2);
System.out.println("num3:" + num3);
s.close();
4. 使用switch把小写类型的char转换为大写,只转换a,b,c,d,e,其它的输出other.
//alt + / 自动补全
char c = 'a';
System.out.println((int)c); //97 字符a对应的编码是97
switch(c) {
case 'a':
//大写字母对应的编码比小写字母对应的编码小32
//System.out.println("A");
System.out.println((char)(c - 32));
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println("C");
break;
case 'd':
System.out.println("D");
break;
case 'e':
System.out.println("other");
break;
default:
break;
}