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;	
	}
  }
}