0
点赞
收藏
分享

微信扫一扫

Day4:录入、if、switch

RockYoungTalk 2022-03-11 阅读 132

Day4:录入、if、switch

程序中的执行流程:

  1. 顺序性:从main方法出发,一行一行往下执行

  2. 选择性:分支语句,具有选择性[马上学习]

  3. 循环性:循环语句,重复的执行某些代码[明天学习]

1.控制台录入

控制台录入: 用于接收从控制台中输入的值

步骤:

  1. 实例化Scanner对象

  2. 调用方法接收录入的值; 方法有:nextInt,next(常用)

public class Console {
public static void main(String[] args) {
Scanner sc = new Scanner();
System.out.print("请输入一个整数:"); //print:打印不换行
int num = sc.nextInt();  //阻塞方法 接收一个整数值  3
//InputMismatchException: 录入整数,如果输入其他的则会报异常
System.out.println(num*2);  //6
sc.close();
String s = sc.next(); //接收一个字符串的值
System.out.println("值为:"+s);
s.close();
double d = sc.nextDouble(); //接收double类型的值
System.out.println("小数值为:"+d);
d.close();
char c = sc.next().charAt(0); //获取字符串的第一个字符,下标从0开始
System.out.println(c);
c.close();

2.iF分支语句

  • 单分支结构:
if(关系表达式){
 	语句体;
 }	
	执行流程:如果关系表达式成立,则执行语句体
Scanner sc = new Scanner(System.in);
		int score = sc.nextInt();
		if(score>=60) {
			System.out.println("请全班吃饭");
		}
  • if双分支结构:if.else
if(关系表达式){
		语句体1:
	}else{
		语句体2:
	}
	执行流程:if关系表达式成立则执行语句体1,否则执行语句体2
		System.out.println("输入一个年份");
		Scanner input = new Scanner(System.in);
		int y = input.nextInt();
		if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
			System.out.println("是闰年");
		} else {
			System.out.println("是平年");
		}
		input.close();
  • if多分支结构:
if(关系表达式1){
  	 语句体1;
  }else if(关系表达式2){
   语句体2}...
  else if(关系表达式n){
  语句体n;
  }else{//可有可无
   语句体;
  }
  • 不含嵌套

    		//不含嵌套
    		System.out.println("请输入您的成绩");
    		Scanner sc = new Scanner(System.in);
    		int score = sc.nextInt();
    		if (score >= 90 && score <= 100) {
    			System.out.println("A");
    		} else if (score >= 60 && score < 90) {
    			System.out.println("B");
    		} else if (score >= 0 && score < 60) {
    			System.out.println("C");
    		} else {
    			System.out.println("您的输入的分数不合法!");
    		}
    		sc.close();
    
      注意:多分支的判断规则要么从小到大,要么从大到小
    
  • if嵌套1:在if判断中,又包含if

    		System.out.println("请输入您的成绩");
    		Scanner sc = new Scanner(System.in);
    		int score = sc.nextInt();
    		if (score>=0&&score<=100) {	
    				if (score==100) {
    					System.out.println("恭喜满分");
    				}else if (score>=90) {
    					System.out.println("优秀");
              //相比上面多分支结构,此处对分支判断进行了优化
    				}else if (score>=60) {
    					System.out.println("及格");
    				}else if (score>=0) {
    					System.out.println("不及格");
    			}
    			}else{
    				System.out.println("您输入的成绩不合法");
    			}
    			sc.close();
    
  • if嵌套2:在if嵌套判断外,又有if嵌套判断

    		Scanner input = new Scanner(System.in);
    		System.out.println("天气如何,1晴天,2霾");
    		int weather = input.nextInt();
    
    		if (weather == 1) {
    			System.out.println("今天是个好天气,1去逛公园,2去逛街");
    			int flag = input.nextInt();
    			if (flag == 1) {
    				System.out.println("和女朋友去逛公园");
    			} else if (flag == 2) {
    				System.out.println("和女朋友去逛街");
    			} else {
    				System.out.println("error input");
    			}
    		} else if (weather == 2) {
    			System.out.println("今天天气不好,1在家看电影,2在家打游戏");
    			int flag = input.nextInt();
    			if (flag == 1) {
    				System.out.println("和女朋友在家看电影");
    			} else if (flag == 2) {
    				System.out.println("和女朋友在家打游戏");
    			} else {
    				System.out.println("error input");
    			}
    		} else {
    			System.out.println("error input");
    		}
    		input.close();
    

3.switch分支语句

  • switch语句有关规则

    1. 表达式的返回值必须是下述几种类型之一:int,byte,char,short,jdk1.7之后支持String;
    2. case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
    3. default子句是可选的;
    4. break语句用在执行完一个case分支后使程序调出switch语句块,如果case后面没有写break则直接往下面执行!
    5. case后面的执行体可以写{}也可以不写{}
    switch(变量){
          case1:语句体1;
            break;  //跳出witch语句
          case2:语句体2;
            break;
         ...
         	case 值n:语句体n;
            break;
         	default:语句体;n+1;
            break;    
      }
    
		System.out.println("请输入周一到周五(1~5)");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		switch (num) {
		case 1:
			System.out.println("food1");
			break;
		case 2:
			System.out.println("food2");
			break;
		case 3:
			System.out.println("food3");
			break;
		case 4:
			System.out.println("food4");
			break;
		case 5:
			System.out.println("food5");
			break;
		default:
			System.out.println("error input");
			break;
		}
  • switch和if嵌套,以及case内定义变量
		System.out.println("请输入1~7");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		switch (num) {
		case 1:
			System.out.println("今天是周一,比较堵,1乘公交,2坐地铁");
			int method = input.nextInt();
			if (method == 1) {
				System.out.println("乘地铁");
			} else if (method == 2) {
				System.out.println("坐地铁");
			} else {
				System.out.println("其他出行方式");
			}
			break;
		case 2:
			int a = 20;
			//在此处定义后在整个大括号内都可以使用不能再被定义
			//即便该语句没有被执行,依旧已被定义
			System.out.println("今天是周二");
			System.out.println(a);
			break;
		case 3:
			a = 10;
			System.out.println("今天是周三");
			System.out.println(a);
			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;
		default:
			System.out.println("error input");
			break;
		}
		input.close();
  • 细节:在jdk7之后,switch的变量可以是String类
		System.out.println("请输入四大天王姓名");
		Scanner input = new Scanner(System.in);
		String name = input.next();
 		switch (name) {
		case "刘德华":
			System.out.println("全能艺人");
			break;
		case "张学友":
			System.out.println("歌神");
		case "黎明":
			System.out.println("帅");
		case "郭富城":
			System.out.println("舞王");
		default:System.out.println("error input");
			break;
		input.close();

if和switch相比,if倾向于用在判断范围,switch倾向于用在等值判断中

4.局部变量

在main方法体或者参数中出现的变量都是局部变量

特点:

  1. 必须要先赋值,才能使用
  2. 作用域到定义处到方法体结束
  3. 在同一个方法中,不能定义重名变量
public class Test1 {
	public static void main(String[] args) {//args	方法参数的局部变量
		int a = 3;//在main方法体中定义的局部变量
		System.out.println(a);
		//int a;Duplicate local variable a:在同一个方法中,不能定义重名变量
	}
		//System.out.println(a);在此处则无法输出
}

作业

  1. 张三的Java成绩,大于80分,全班鼓掌
package com.qf.Day3HomeWork;

import java.util.Scanner;

public class d3_1 {
	public static void main(String[] args) {
		System.out.println("请输入张三的成绩");
		Scanner input = new Scanner(System.in);
		int score = input.nextInt();
		if (score>=0&&score<=100) {
			if(score>80) {
				System.out.println("全班鼓掌");
			}
				
		}else {
			System.out.println("error input");
		}
		input.close();
	}
}
  1. 输入张三的Java和php成绩,都大于80分,全班鼓掌,否则鼓励
package com.qf.Day3HomeWork;

import java.util.Scanner;

public class d3_2 {
	public static void main(String[] args) {
		System.out.println("请输入张三的Java成绩");
		Scanner input = new Scanner(System.in);
		int JavaScore = input.nextInt();
		System.out.println("请输入张三的php成绩");
		int PhpScore = input.nextInt();
		if (JavaScore>=0&&JavaScore<=100&PhpScore>=0&&PhpScore<=100) {
			if (JavaScore>=80&&PhpScore>=80) {
				System.out.println("全班鼓掌");
			}else {
				System.out.println("鼓励");
			}
		}else {
			System.out.println("error input");
		}
    input.close();
	}
}
  1. 考试成绩评测,大于等于80分良好,大于等于60分并小于80分中等,小于60分多加努力
package com.qf.Day3HomeWork;

import java.util.Scanner;

public class d3_3 {
	public static void main(String[] args) {
		System.out.println("请输入成绩");
		Scanner input = new Scanner(System.in);
		int score = input.nextInt();
		if (score>=0&&score<=100) {
			if(score>=80) {
				System.out.println("良");
			}else if(score>=60){
				System.out.println("中");
			}else {
				System.out.println("多加努力");
			}
		}else {
			System.out.println("error input");
		}
	}
}
  1. 输入会员积分及购物金额,根据积分的不同享受不同的折扣,并输出结账金额
    x < 2000 9折
    2000 ≤ x < 4000 8折
    4000 ≤ x < 8000 7折
    x ≥ 8000 6折
    提示: 积分:3000 500*0.8=400
    根据积分进行多分支判断
package com.qf.Day3HomeWork;

import java.util.Scanner;

public class d3_4 {
	public static void main(String[] args) {
		System.out.println("输入用户的会员积分");
		Scanner input1 = new Scanner(System.in);
		int credits = input1.nextInt();
		if (credits<0) {
			System.out.println("error input");
		}else {
		System.out.println("请输入用户购买金额");
		Scanner input2 = new Scanner(System.in);
		Double sum = input2.nextDouble();
		if (credits<2000) {
			System.out.println(sum*0.9);
		}else if (credits>=2000&&credits<4000) {
			System.out.println(sum*0.8);
		}else if (credits>=4000&&credits<8000) {
			System.out.println(sum*0.7);
		}else if(credits>=8000){
			System.out.println(sum*0.6);
		}
		}
		
	}

}
  1. 输入数字,输出今天星期几
package com.qf.Day3HomeWork;

import java.util.Scanner;

public class d3_5 {
	public static void main(String[] args) {
		System.out.println("输入数字");
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		switch (num) {
		case 1:
			System.out.println("Monday");
			break;
		case 2:
			System.out.println("Thuesday");
			break;
		case 3:
			System.out.println("Wednesday");
			break;
		case 4:
			System.out.println("Thursday");
			break;
		case 5:
			System.out.println("Friday");
			break;
		case 6:
			System.out.println("Saturday");
			break;
		case 7:
			System.out.println("Sunday");
			break;
		default:System.out.println("error input");
			break;
		}
    input.close();
	}
}

举报

相关推荐

Day4

-day4

day4 QT

Qt day4

QT DAY4

hadoop——day4()

ARM day4 作业

QT作业day4

0 条评论