Java基础-Day03

Java基础-Day03

Scanner

  • Scanner是需要进行导包操作

    //对于cha型的获取,Scanner没有提供相关的方法。只能获取一个字符串,可通过以下方法解决
    import java.util.Scanner;
    class ScannerTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
          	System.out.println("请输入性别:(男/女)");
          	String gender = scan.next();
          	char genderChar = gender.charAt(0);//获取索引为0位置上的字符
          	System.out.println(genderChar);
    	}
    }
    

    import java.util.Scanner;
    class ScannerTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		float age = scan.nextFloat();
    		if(age > 2){
    			age -= 2;
    			age = age * 4 + 21;
    			System.out.println("The age of a dog is:" + age);
    		}else if( age >=0 && age <= 2){
    			age *= 10.5;
    			System.out.println("The age of a dog is:" + age);
    		}else{
    			System.out.println("Input Error");
    		}
    		
    	}
    }
    

if-else

  • import java.util.Scanner;
    class ScannerTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		float age = scan.nextFloat();
    		if(age > 2){
    			age -= 2;
    			age = age * 4 + 21;
    			System.out.println("The age of a dog is:" + age);
    		}else if( age >=0 && age <= 2){//括号中只进行false/true的判断,因此在比较区间范围时需要添加逻辑运算符进行判断
    			age *= 10.5;
    			System.out.println("The age of a dog is:" + age);
    		}else{
    			System.out.println("Input Error");
    		}
    		
    	}
    }
    

switch-case

  • switch结构中的表达式,只能是如下6种数据类型之一:byte,short,char,int,枚举类型(JDK5.0新增)、String类型(JDK7.0新增)

  • case 之后只能声明常量,不能声明范围

  • break,可以使用在switch-case结构中,表示一点执行到此关键字,就跳出switch-case结构

    break关键字是可选可不选的。

  • default:相当于if-else结构中的else 可选可不选

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

  • 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立

  • 我们写分支结构时,当发现既可以使用switch-case,也可以使用if-else时,如果switch-case中表达式的取值情况不太多时,优先考虑使用switch-case。原因:switch-case执行效率稍高

  • 格式:

    switch(表达式){
        case 常量1:
          执行语句1;
          //break;
        case 常量2:
          执行语句2;
          //break;
        case 常量3:
          执行语句3;
          //break;
        ...
        default:
        	执行语句n;
        	//break;
        
    }
    

  •  class SwitchCaseTest{
     	public static void main(String[] args){
     		
     		int number = 1;
     		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("three");
                	break;
     			default:
     				System.out.println("other");
     			
     		}
     	}
       }
    
    
    ```java
    //对学生大于60分的,输出为“及格”,低于60分的,输出为“不及格”
    	class SwitchCaseTest2{
    	public static void main(String[] args){
    		
    		int score = 70;
    		switch(score / 60){
    			case 0:
                	System.out.println("不及格");
                	break;
    			case 1:
                	System.out.println("及格");
                	break;
    		}
    	}
    }
    
  • //从键盘分别输入年/月/日,潘丹这一天是当年的第几天
    import java.util.Scanner;
    
    class SwitchCaseTest{
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		System.out.println("Please enter the year:");
    		int year = scan.nextInt();
    		System.out.println("Please enter the month:");
    		int month = scan.nextInt();
    		System.out.println("Please enter the day:");
    		int day = scan.nextInt();
    		
    		int sumDays = 0;
    		switch(month){
    			case 12:
    				sumDays += 31;
    			case 11:
    				sumDays += 30;
    			case 10:
    				sumDays += 31;
    			case 9:
    				sumDays += 30;
    			case 8:
    				sumDays += 31;
    			case 7:
    				sumDays += 31;
    			case 6:
    				sumDays += 30;
    			case 5:
    				sumDays += 31;
    			case 4:
    				sumDays += 30;
    			case 3:
    				sumDays += 31;
    			case 2:
    				if((year % 10 == 0 && year % 100 != 0) || year % 100 == 0){
    					sumDays += 29;
    				}else{
    					sumDays += 28;
    				}
    			case 1:
    				sumDays += day;
    			
    		}
    		System.out.println(year + "/" + month + "/" + day + " is Day " + sumDays);
    	}
    }
    
posted @ 2023-06-26 16:44  Clayborne  阅读(25)  评论(0)    收藏  举报