1 if-else语句(二)
案例:Demo1~Demo4
import java.util.Scanner; public class Demo1 { //在main方法中,从控制台输入任意的一个整数,判断该 //整数是奇数还是偶数,并输出对应的奇数或者偶数 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); if(num%2!=0){//奇数 System.out.println(num+"是奇数"); }else{// num%2==0 偶数 System.out.println(num+"是偶数"); } } } import java.util.Scanner; public class Demo2 { //在main方法中,创建一个Scanner对象,并从控制台 //输入任意的两个整数,输出其中较大的整数的值(if-else) public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第1个整数:"); int num1 = sc.nextInt(); System.out.println("请输入第2个整数:"); int num2 = sc.nextInt(); if(num1>=num2){ System.out.println("较大的整数是"+num1); }else{//num1<num2 System.out.println("较大的整数是"+num2); } //Demo3:在main方法中,创建一个Scanner对象,并从 //控制台输入任意的一个整数作为年份,判断该年份是闰年 //还是非闰年,输出对应的闰年或者非闰年 } } import java.util.Scanner; public class Demo3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入年份:"); int year = sc.nextInt(); if((year%4==0 && year%100!=0) || year%400==0){ System.out.println(year+"是闰年"); }else{ System.out.println(year+"不是闰年"); } } } import java.util.Scanner; public class Demo4 { //在main方法中,创建一个Scanner对象,从控制台输入 //任意的一个整数,判断该整数是否在1~100之间,如果在 //输出“满足条件”,反之如果不在1~100之间,输出"不 //满足条件" //1~100 num>=1 && num<=100 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int num = sc.nextInt(); if(num>=1 && num<=100){ System.out.println(num+"满足条件"); }else{ System.out.println(num+"不满足条件"); } } }
2 if-else-if:多分支选择语句
1)格式:
if(表达式1){
语句1
}else if(表达式2){
语句2
}else if(表达式3){
语句3
}...
else{
语句n
}
2)语法规则:只有分支中表达式为true,执行对应分支中的语句,如果所有分支中的表达式都为false,执行最后else中的语句n。
案例:Demo5
import java.util.Scanner; public class Demo5 { //从控制台输入整数,作为分数,根据分数输出对应的优秀, //良好,中等,及格,不及格 //90~100 优秀 //80~89 良好 //70~79 中等 //60~69 及格 //0~59 不及格 //其他值 输入错误 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入分数:"); int score = sc.nextInt(); if(score>=90 && score<=100){ System.out.println("优秀"); }else if(score>=80 && score<90){ System.out.println("良好"); }else if(score>=70 && score<80){ System.out.println("中等"); }else if(score>=60 && score<70){ System.out.println("及格"); }else if(score>=0 && score<60){ System.out.println("不及格"); }else{ System.out.println("输入错误!"); } } } import java.util.Scanner; public class Demo6 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入工资:"); int salary = sc.nextInt(); if(salary>=50000){ System.out.println("游轮"); }else if(salary>=25000&&salary<50000){ System.out.println("自驾"); }else if(salary>=15000&&salary<25000){ System.out.println("飞机"); }else if(salary>=10000&&salary<15000){ System.out.println("高铁"); }else if(salary>=6000&&salary<10000){ System.out.println("火车"); }else if(salary>=2000&&salary<6000){ System.out.println("大巴车"); }else if(salary>=1000&&salary<2000){ System.out.println("步行"); }else{//salary<1000 System.out.println("梦游"); } } //从控制台输入一个整数,作为工资(salary),根据工资 //建议旅游的方式 //50000及50000以上 游轮 //25000~49999 自驾 //15000~24999 飞机 //10000~15000 高铁 //6000~9999 火车 //2000~5999 大巴车 //1000~1999 步行 //1000以及1000以下 梦游 } import java.util.Scanner; public class Demo7 { public static void main(String[] args) { //1 定义变量 double price = 5;//咖啡单价 int num = 0;//购买咖啡的杯数 double total = 0;//总金额 //2 创建Scanner对象 Scanner sc = new Scanner(System.in); System.out.println("请输入购买咖啡的杯数:"); //3 输入购买咖啡的杯数 num = sc.nextInt(); //4 根据购买咖啡的杯数,分几种可能 if(num<1){ System.out.println("走开,不卖"); }else if(num==1){ total = price; }else{//num>1 total = price + (num-1)*0.5*price; } System.out.println("购买了"+num+"杯咖啡," +"总金额是"+total); } }
综合案例:买咖啡的问题
每杯咖啡单价是5元,现在咖啡厅举行活动,购买第1杯咖啡原价,从第2杯开始每杯咖啡半价。
从控制台输入购买咖啡的杯数,输出总的金额。
1)定义变量:
double price = 5; 咖啡的价格
int num=0; 购买咖啡的杯数
double total = 0;总的金额
2)根据购买咖啡杯数的不同,分成几种情况
num<1 走开,不卖 total = 0
num=1 total = price
num>1 total = price + (num-1)*0.5*price;
import java.util.Scanner; public class Demo8 { public static void main(String[] args) { double price=5,total=0; Scanner sc = new Scanner(System.in); System.out.println("请输入购买咖啡杯数:"); int num = sc.nextInt(); if(num<1){ System.out.println("走开,不卖!"); }else{//num>=1 total = price + (num-1)*0.5*price; } System.out.println("购买了"+num+"杯咖啡," +"总金额是"+total); } } import java.util.Scanner; public class Demo9 { public static void main(String[] args) { double rate = 0.05,realRate=0; Scanner sc = new Scanner(System.in); System.out.println("请输入还款的年份:"); int year = sc.nextInt(); if(year>=1&&year<=5){ realRate = 0.8 * rate; }else if(year>=6&&year<=10){ realRate = 0.9 * rate; }else if(year>=11&&year<=15){ realRate = rate; }else if(year>=16&&year<=20){ realRate = 1.1 * rate; }else if(year>=21&&year<=30){ realRate = 1.2 * rate; }else if(year>30){ realRate = 1.5 * rate; }else{ System.out.println("输入错误"); } System.out.println(year+"年还款的,当前"+ "的利率是"+realRate); } //基本利率(rate)是0.05,从控制台输入还款的年份, //根据还款的年份,输出真实利率(realRate) //1~5年 8折 //6~10年 9折 //11~15年 原利率(基本利率) //16~20年 1.1倍 //21~30年 1.2倍 //30年以上 1.5倍 //其他年份 输入错误 }
3 while循环
1)格式:
while(表达式){
循环体语句
}
2)语法规则:首先判断表达式,如果表达式为true,执行一次循环体语句;然后再来判断表达式,如果表达式还为true,继续再执行一次循环体语句...直到表达式为false,退出while循环。
eg:
int i=1;
while(i<=5){
System.out.println(今天);
i++;
}
表达式 循环体语句
第1次循环: i<=5(true) 今天 i++(i:2)
第2次循环: i<=5(true) 今天 i++(i:3)
第3次循环: i<=5(true) 今天 i++(i:4)
第4次循环: i<=5(true) 今天 i++(i:5)
第5次循环: i<=5(true) 今天 i++(i:6)
第6次循环: i<=5(false) 退出while循环
案例:Demo10
public class Demo10 { //while循环 //1 格式:while(表达式){ // 循环体语句 // } //2 语法规则:首先判断表达式,如果表达式为true,执行 //循环体语句一次,然后再来判断表达式,如果表达式还为 //true,继续再执行循环体语句一次...直到表达式为false //退出while循环。 //使用while循环,打印10行******** public static void main(String[] args) { int i=1; while(i<=10){ System.out.println("********"); i++; } //Demo11: 使用while循环,输出1~100之间的每一个 //整数 } } public class Demo11 { public static void main(String[] args) { int i=1; while(i<=100){ System.out.println(i); ++i; //无论是++i还是i++,变量i的值都会加1,不同仅仅只是 //表达式的值,while循环判断的条件i<=100,比较是 //变量的值,而不是表达式的值,没影响。 } } }
3)变量i控制循环执行的次数:
变量i的初值(i=1),循环条件(i++),i的增量(i++)
4)while的死循环:如果循环的条件永远都为true,循环体语句会一直被执行。
while(true){
循环体语句
}
案例:Demo12
public class Demo12 { public static void main(String[] args) { while(1==1){ System.out.println("我对你的爱就像" + "死循环一样,一直下去!"); } } } public class Demo13 { //使用while循环,输出1~100之间所有的奇数 //1 求出1~100之间每一个整数 //2 if(i%2!=0) true i是奇数 public static void main(String[] args) { //1 求出1~100之间的每一个整数 int i=1; while(i<=100){ //2 过滤出每一个奇数 if(i%2!=0){//奇数 System.out.println(i); } i++; } } } //Demo14:使用while循环求出100~200之间的每一个奇数 //和偶数,并输出 public class Demo14 { public static void main(String[] args) { //100~200之间每一个整数 int i=100; while(i<=200){ if(i%2!=0){//奇数 System.out.println(i+"是奇数"); }else{//偶数 System.out.println(i+"是偶数"); } i++; } } } public class Demo15 { //使用while循环,求出公元1000~2017之间所有的闰年 //并输出 public static void main(String[] args) { int i=1000; while(i<=2017){ if((i%4==0&&i%100!=0)||i%400==0){ System.out.println(i+"是闰年"); } i++; } } } public class Demo16 { //求出1~100之间的每一个奇数 //1,3,5,7,9,11...99 //i的初值i=1,条件i<=100,增量i=i+2 public static void main(String[] args) { int i=1; while(i<=100){ System.out.println(i+"是奇数"); i=i+2; } } } //Demo17:使用while循环求出1~100之间所有的偶数 //2种方法 public class Demo17 { public static void main(String[] args) { //方法1: int i=1; while(i<=100){ if(i%2==0){ System.out.println(i); } i++; } System.out.println();//换行 System.out.println(); System.out.println(); //方法2: //2,4,6,8,10...100 //i的初值2,循环条件i<=100,增量i=i+2 int k=2; while(k<=100){ System.out.println(k); k=k+2; } } }