分支结构练习题if-else,switch-case

1.switch后面使用的表达式可以是哪些数据类型的。

byte、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)

2. 使用switch语句改写下列if语句:

   int a = 3;             

   int x = 100;

   if(a==1)

x+=5;

   else if(a==2)

x+=10;

   else if(a==3)

x+=16;

   else

x+=34;

解:int a = 3;

Int x = 100;

switch(a){

case 1:

x+=5;

break;

case 2:

x+=10;

break;

case 3:

x+=16;

break;

Default:

    x+=34;

}

System.out.println(x);

3.谈谈你对三元运算符、if-else和switch-case结构使用场景的理解

凡是可以使用三元运算符,switch-case的地方,都可以改写成if-else;

反之:不成立:能用if-else写的不一定能用三元运算符,switch-case;

如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁执行效率高。

如果程序既可以使用switch-case,又可以使用if-else结构,那么优先switch-case。原因:简洁执行效率高。

4. 如何从控制台获取String和int型的变量,并输出?使用代码实现

Import java.util.Scanner;

class Sc{

Scanner scan = new Scanner(System.in);

String str = scan.next();

Int num = scan.nextInt();

System.out.println(“str=”+str+”num”+num);

}

5.使用for循环遍历100以内的奇数,并计算所有的奇数的和并输出。

Int sum=0;//变量要赋值

For(int i=1;i<=100;i++){

If(i%2 != 0){

System.out.println(i);

Sum +=i;

}

}

System.out.println(“所有的奇数和为:”+sum );

代码练习:

1.输入一个数判断奇偶性

System.out.println("---------一个整数判断奇偶性--------------");
		System.out.print("输入一个整数:");
		int num = scan.nextInt();
		if(num !=0&&num%2==0){
		   System.out.println("是偶数");
	   }else if(num !=0&&num%2==1){
		   System.out.println("是奇数");
	   }else{
		   System.out.println("非奇非偶");
	   }

2.由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。

import java.util.Scanner;


class IfTest2{
	public static void main(String[] args){
		//随机输入三个数从小到大列
		Scanner scan = new Scanner(System.in);
		
		System.out.print("输入第一个整数num1:");
	   int num1 = scan.nextInt();
	   System.out.print("输入第二个整数num2:");
	   int num2 = scan.nextInt();
	   System.out.print("输入第三个整数num3:");
	   int num3 = scan.nextInt();
	   
	   if(num1>=num2){
		   if(num1<=num3){
			   System.out.println(num2+","+num1+","+num2);
		   }else if(num3<=num2){
			   System.out.println(num3+","+num2+","+num1);
		   }else{
			   System.out.println(num2+","+num3+","+num1);
		   }
	   }else{
		   if(num3<=num1){
			   System.out.println(num3+","+num1+","+num2);
		   }else if(num3>=num2){
			   System.out.println(num1+","+num2+","+num3);
		   }else{
			   System.out.println(num1+","+num3+","+num2);
		   }
	   }
	}
}

3.例题2.对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。

说明:如果switch-case结构的多个case的执行语句相同,则可以考虑进行合并

System.out.println("--------------例题2.-----------");
         Scanner scan = new Scanner(System.in);
		System.out.print("请输入成绩(0~100):");
		int score = scan.nextInt();
		/*
		说明:如果switch-case结构的多个case的执行语句相同,则可以考虑进行合并
			合并:
			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;
		}
		*/

        //第一种
		switch(score/10){
			case 0:
				System.out.println("不及格");
				break;
			 case 1:
				System.out.println("不及格");
				break;
			 case 2:
				System.out.println("不及格");
				break;
			 case 3:
				System.out.println("不及格");
				break;
			 case 4:
				System.out.println("不及格");
				break;
			 case 5:
				System.out.println("不及格");
				break;
			 case 6:
				System.out.println("及格");
				break;
			 case 7:
				System.out.println("及格");
				break;
			 case 8:
				System.out.println("及格");
				break;
			case 9:
				System.out.println("及格");
				break;
			 case 10:
				System.out.println("及格");
				break;
		}


		switch(score/60){//第二种方法:最优解
			case 0:
				System.out.println("不及格");
				break;
			case 1:
				System.out.println("及格");
				break;	
		}

4.例题4.根据用于指定月份,打印该月份所属的季节。
            3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

说明:break在switch-case中是可选的:一般在开发中都会带有break

System.out.println("--------------例题3.-----------");
		System.out.print("请输入月份(1~12):");
		int month = scan.nextInt();
		
		switch(month){
			case 12:
			case 1:
			case 2:
				System.out.println("冬季");
				break;
			 case 3:
			 case 4:
			 case 5:
				System.out.println("春季");
				break;
			 case 6:
			 case 7:
			 case 8:
				System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
		}
	

5.从键盘分别输入年、月、日,判断这一天是当年的第几天
    注:判断一年是否是闰年的标准:
    1)可以被4整除,但不可被100整除
    或
    2)可以被400整除

    说明:
    1.凡是可以使用switch-case的结构,都可以转换为if-else.反之。不成立。
    2.当我们写分支结构时,当发现既可以使用switch-case,(同时,switch中表达式的取值情况不太多),
     又可以使用if-else时,我们有先用switch-case。原因:switch-case执行效率稍高。

    break在switch-case中是可选的:一般在开发中都会带有break

import java.util.Scanner;

class SwitchCaseExer{
	public static void main(String[] args){
		
	Scanner scan = new Scanner(System.in);	
		
	System.out.println("--------------练习1-----------");
		System.out.print("请输入year:");
		int year = scan.nextInt();
		System.out.print("请输入month(1~12):");
		int month1 = scan.nextInt();
		
		System.out.print("请输入day(1~31),2月只有28天:");
		int day = scan.nextInt();
		int sumDay = 0;//定义一个变量来代表总天数
		switch(month1){
			case 12:
				sumDay += 30;
			case 11:
			   sumDay += 31;
			case 10:
				sumDay += 30;
			case 9:
				sumDay += 31;
			case 8:
				sumDay += 31;
			case 7:
				sumDay += 30;
			case 6:
				sumDay += 31;
			case 5:
				sumDay += 30;
			case 4:
				sumDay += 31;
			case 3:
			    //判断是否为闰年
				if((year%4==0&&year%100!=0)||year%400==0){
					sumDay += 29;
				}else{
					sumDay +=28;
				}
			case 2:
				sumDay += 31;
			case 1:
				sumDay += day;
		}
		System.out.println(year+"年"+month1+"月"+day+"日"+"是"+year+"年的第"+" "+sumDay+" "+"天");
				
	}
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值