目录
练习程序2:有键盘输入变量num1,num2,num3,对他们进行排序(使用if-else if-else)并且从小到大输出
练习程序3:一只狗,出生的前两年每年相当于人的10.5岁,之后一年是4岁编写一个程序,要求输入数据,算出狗狗相当于多大
联系程序4、在用布尔型时,不填true或者false的方法:引用equals("");就行 而且时在条件语句中使用,此时接收的类型就是String
练习程序2:学生成绩大于60,输出”合格“,低于60,输出”不合格“
练习程序3:输入某年的year、month和day输出是今年的第几天 判断是否是闰年的标准是:能被4整除不能被100整除或者是能被400整除
三、感想:今天是2021.10.19所以算了一下今年居然已经过去292天了。看来我的学习速度太慢了。加油!
一、分支结构:if-else
导包:import java.util.Scanner;
实例化:Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
说明:1、if-else结构是可以相互嵌套的
2、如果if-else结构中的执行语句只有一行时,对应的{}可以省略,但是不建议省略
3、else结构是可选的,可以没有,没有的话执行就是一行空白
注意:if的条件就是布尔型,所以if(80<score<90);这种不能写。因为80.90是int型
错误为: 二元运算符 '<=' 的操作数类型错误,
}else if(80<score<=99){
第一个类型: boolean
第二个类型: int
练习程序1:从键盘输入小明的成绩,按要求输出获得的奖励
import java.util.Scanner;
class IfText{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入小明的成绩:");
int score = scanner.nextInt();
if(score == 100){
System.out.println("奖励一辆车!");
}else if(score>90&&score<100){
System.out.println("奖励一台电脑!");
}else if(score>80&&score<=90){
System.out.println("奖励一个本子!");
}else{
System.out.println("奖励一个p!");
}
}
}
练习程序2:有键盘输入变量num1,num2,num3,
对他们进行排序(使用if-else if-else)并且从小到大输出
import java.util.Scanner;
class IfText2{
public static void main(String[] arges){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数");
int num1 = scanner.nextInt();
System.out.println("请输入第二个数");
int num2 = scanner.nextInt();
System.out.println("请输入第三个数");
int num3 = scanner.nextInt();
if(num1 > num2){
if(num3 > num1){
System.out.println(num2 + ","+num1 +"," + num3);
}else if (num3 < num2){
System.out.println(num3 + ","+num2 +","+num1);
}else{
System.out.println(num2 + "," +num3 +"," +num1);
}
}
练习程序3:一只狗,出生的前两年每年相当于人的10.5岁,之后一年是4岁
编写一个程序,要求输入数据,算出狗狗相当于多大
import java.util.Scanner;
class IfText3{
public static void main(String[] arges){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入狗的年龄:");
double age1 = scanner.nextDouble();
if(age1 <= 2 ){
double age = age1 * 10.5;
System.out.println("age = "+age);
}else{
double age = (age1-2) * 4 +21;
System.out.println("age ="+ age);
}
小知识:如何获取一个随机数:10 - 99
class IfText3{
public static void main(String[] arges){
int value = (int)(Math.random()*90+10);
//[0.0,1.0)--->[0.0,90.0)--->[10.0,100)--->[10,99)
System.out.println("随机数 ="+value);
}
}
联系程序4、在用布尔型时,不填true或者false的方法:
引用equals("");就行 而且时在条件语句中使用,此时接收的类型就是String
import java.util.Scanner;
class IfText4{
public static void main(String[] arges){
Scanner scanner = new Scanner(System.in);
System.out.println("你是不是很帅:(是/否)");
String ishandsome = scanner.next();
if (ishandsome.equals("是")){
System.out.println("嫁了");
}else{
System.out.println("不嫁");
}
}
}
二、分支结构:switch-case
转换-案例 case后面只能放常量
说明:
根据switch表达式的值,依次匹配各个case中的常量,一旦匹配成功则进入相应的case结构中,调用其执行语句
当调用的执行语句执行完以后,继续执行之后的执行语句,直到碰到break关键字或者执行完所有的才能跳出
break可以用到switch-case中,表示碰到以后跳出循环
switch结构中的表达式只能用于一下的6种数据类型:
byte、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
default 相当于if-else中的else default可选可不选
练习程序1:输入0123根据case的设定输出值
import java.util.Scanner;
class SwitchCaseText{
public static void main(String[] arges){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入0/1/2/3");
int number = scanner.nextInt();
switch(number){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("other");
break;
}
}
}
练习程序2:学生成绩大于60,输出”合格“,低于60,输出”不合格“
说明:如果switch-case中多个案例的执行语句一样,可以考虑省略
class SwitchCaseText1{
public static void main(String[] arges){
int score = 66;
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("及格");
break;
}
}
}
更优解
class SwitchCaseText1{
public static void main(String[] arges){
int score = 66;
switch(score/60){
case 0:
System.out.println("不及格");
break;
case 1:
System.out.println("及格");
break;
}
}
练习程序3:输入某年的year、month和day输出是今年的第几天
判断是否是闰年的标准是:能被4整除不能被100整除或者是能被400整除
import java.util.Scanner;
class SwitchCaseText2{
public static void main(String[] arges){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入year:");
int year = scanner.nextInt();
System.out.println("请输入month:");
int month = scanner.nextInt();
System.out.println("请输入day:");
int day = scanner.nextInt();
int sumdays = 0;
switch(month){
case(12):
sumdays +=30;
case(11):
sumdays +=31;
case(10):
sumdays +=30;
case(9):
sumdays +=31;
case(8):
sumdays +=31;
case(7):
sumdays +=30;
case(6):
sumdays +=31;
case(5):
sumdays +=30;
case(4):
sumdays +=31;
case(3):
if(year % 4 == 0||year % 100 != 0 && year % 400 == 0){
sumdays += 29;
}else{
sumdays += 28;
}
case(2):
sumdays +=31;
case(1):
sumdays +=day;
}
System.out.println(year +"年已经过去了"+sumdays+"天");
}
}