Java教学基础1-输入、字符串、条件语句

第一讲

你好! 这是Java教学的第一课,之前写过几篇二进制的前戏,掌握二进制对之后的学习理解会有更好的帮助。
从这开始,我们进入Java教学: 现如今我们工作生活的方方面面都离不开手机、电脑,像里面各式各样的软件我们是非常熟悉的,比如玩游戏的扫雷、蜘蛛纸牌、写文档用的Word、购物的某宝等等,那么这些软件是怎么做出来的呢?其实就是用的计算机语言编程写出来的,那,什么是计算机语言?其实就是计算机能读懂的语言,正像我们现实生活中有各种人的语言,比如汉语、英语、德语等等,计算机语言也有很多种,那我们这来学习的就是Java

键盘录入的基本格式讲解(掌握)

  • 为什么要使用键盘录入数据
    • 为了让程序的数据更符合开发的数据
    • 让程序更灵活一下
  • 如何实现键盘录入呢?
    • 先照格式来。
    • 导包
      • 格式:
        • import java.util.Scanner;
      • 位置:
        • 在class上面。
    • 创建键盘录入对象
      • 格式:
        • Scanner sc = new Scanner(System.in);
    • 通过对象获取数据
      • 格式:
        • int x = sc.nextInt();
  • 案例演示
    • 键盘录入1个整数,并输出到控制台。
  • 自我练习
    • 键盘录入2个整数,并输出到控制台。

在这里插入图片描述
如上演示:当运行程序后,程序会将main方法中的代码自上而下运行,但是,当运行到scan.nextInt() 的时候,程序会卡在这里,你可以看到光标在闪,他卡在这里干嘛呢? 等待你输入一个数字,你输入数字后,程序继续往下运行

import java.util.Scanner;
public class ScanDemo{
	public static void main(String[] args){
		//类型  变量名 = XXX
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一段你最爱的数字");
		int x = scan.nextInt();
		System.out.println("您输入的数字为:"+x);
		System.out.println("OVER");

	}

}

交换值

如何交换两个变量的值呢?
这里举个很简单的例子,就像我们现在有一杯可乐,还有一杯82年的拉菲,我们要把这两杯交换,怎么交换呢?我们可以使用第三个杯子,先把可乐倒入第三个杯子中,再把拉菲倒入之前装可乐的杯子,最后把可乐倒进刚才装拉菲的杯子即可

public class Demo5{
	public static void main(String[] args){
		int i = 9;
		int j = 88;
		System.out.println("i的值为:"+i+",j的值为:"+j);
		int k;
		//1.把i赋值给空的k
		k = i;
		//2.把j的值赋值给i
		i = j ;
		//3.把k的值赋值给j
		j = k;
		System.out.println("交换后!!i的值为:"+i+",j的值为:"+j);
		
	}
}

特殊的String

String是一个比较特殊的类型,他有两种赋值方式,第一种跟我们之前学的=赋值类似,另一种是使用new的方式赋值,看如下代码

public class StringDemo{
	public static void main(String[] args){
		//类型 变量名 =xxx;
		/*String str = "你好啊?";		
		String str2 = new String("你好啊?");
		String str3 = "你好啊?";
		System.out.println(str);
		System.out.println(str2);
		System.out.println(str3);
		System.out.println(str == str2);//false
		System.out.println(str == str3);*///true
		
		/*int i = 9;
		double d = 9.0;
		System.out.println(i ==d);*/


		/*char c = 'a';
		int i = 97;
		System.out.println(c == i );*/

		int i = -2;
		byte b = -2;
		System.out.println(i == b);



		P1:
		str,str2,str3都是String类型的变量
		要使得
		str == str2结果为false
		str == str3结果为false
		str3 == str2结果为true
		请定义str,str2,str3

	}
}

看上面代码演示的,我们发现 只要使用new String(“xxx”)的方式出来的字符串变量,使用==跟其他的字符串变量判断的话,得到的结果都是false,实际上,我们要判断两个字符串是否一样的话,不应该使用==来判断,而是需要使用equals来判断,如下:

public class Test1{
	public static void main(String[] args){
		/*
		str,str2,str3都是String类型的变量
		要使得
		str == str2结果为false
		str == str3结果为false
		str3 == str2结果为true
		请定义str,str2,str3
		*/
		//每new 一次,都会在堆内存空间创建一个新的
		String str2 = "a";
		String str3 = "a";
		String str = new String("a");
		System.out.println(str == str2);
		System.out.println(str == str3);
		System.out.println(str3 == str2);
		//String使用equals方法比较  
		//比较他们的字符串的值是否一样
		System.out.println("使用equals方法比较:"+str.equals(str2));

		String ss = new String("abc");
		String ss2 = new String("abc");
		System.out.println("两个new比较:"+ss.equals(ss2));

	}


}

课中练习

然后再做两个插入练习来多打打代码吧

import java.util.Scanner;
public class Test2{
	public static void main(String[] args){
		/*
		P2:使用输入语句输入一个三位数字
		输出出这个数字个位,十位,百位
		*/
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个三位数");
		int i = scan.nextInt();
		System.out.println("个位:"+i%10);
		System.out.println("十位:"+i/10%10);
		System.out.println("百位:"+i/100%10);

	}

}
import java.util.Scanner;
public class IfDemo{
	public static void main(String[] args){
		//有两个变量 1个是i
		//一个是j
		//假如i>j那么输出一句  你大你牛
		//否则的话 ,你小你开心

		//int i = 9;
		//int j = 9;
		
//这个小括号中写的是条件,不管你写什么鬼,
//只要能得到一个boolean类型的结果就行
		/*if(i > j){
			System.out.println("你大你牛逼");
		}else{
			System.out.println("你小你开心");
		}*/

	//练习1 输入一个数,如果这个数大于100,则输出一句,破百啦
	//否则,输出一句,太小了
		/*Scanner scan = new Scanner(System.in);			
		System.out.println("请输入一个数");
		int i = scan.nextInt();
		if(i >100){
			System.out.println("破百");
		}else{
			System.out.println("小了");
		}*/





	//练习2,输入一个数,如果这个数是奇数,那么输出 这个数为奇数
		//否则输出 这个数为偶数
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个数");
		int i =scan.nextInt();
		if(i%2 == 0 ){
			System.out.println("您输入的数字是偶数");
		}else{
			System.out.println("您输入的数是奇数");
		}

	}
}

顺序结构语句(了解)

  • 什么是流程控制语句
    • 流程控制语句:可以控制程序的执行流程。
  • 流程控制语句的分类
    • 顺序结构
    • 选择结构
    • 循环结构
  • 顺序结构执行流程:
    • 从上往下,代码一行一行依次执行。

选择结构if语句注意事项(掌握)

  • 案例演示
    • 比较表达式无论简单还是复杂,结果必须是boolean类型
    • if语句控制的语句体如果是一条语句,大括号可以省略;
      • 如果是多条语句,就不能省略。建议永远不要省略。
    • c:一般来说:有左大括号就没有分号,有分号就没有左大括号

选择结构if语句格式1及其使用(掌握)

  • 选择结构的分类
    • if语句
    • switch语句
  • if语句有几种格式
    • 格式1
    • 格式2
    • 格式3
  • if语句的格式1
	if(比较表达式) {
		语句体;
	}
  • 执行流程:
    • 先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体;
    • 如果是false,就不执行语句体;

选择结构if语句注意事项(掌握)

  • 案例演示
    • 比较表达式无论简单还是复杂,结果必须是boolean类型
    • if语句控制的语句体如果是一条语句,大括号可以省略;
      • 如果是多条语句,就不能省略。建议永远不要省略。
    • c:一般来说:有左大括号就没有分号,有分号就没有左大括号

选择结构if语句格式及其使用(掌握)

  • if语句的格式2
		if(比较表达式) {
			语句体1;
		}else {
			语句体2;
		}
  • 执行流程:
    • 首先计算比较表达式的值,看其返回值是true还是false。
    • 如果是true,就执行语句体1;
    • 如果是false,就执行语句体2;
  • 案例演示
    • 获取两个数据中较大的值

    • 判断一个数据是奇数还是偶数,并输出是奇数还是偶数

    • 注意事项:else后面是没有比较表达式的,只有if后面有。

if语句的格式和三元的相互转换问题(掌握)

  • 案例演示
    • if语句和三元运算符完成同一个效果
  • 案例演示
    • if语句和三元运算符的区别

    • 三元运算符实现的,都可以采用if语句实现。反之不成立。

    • 什么时候if语句实现不能用三元改进呢?

      • 当if语句控制的操作是一个输出语句的时候就不能。
      • 为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

选择结构if语句格式及其使用(掌握)

  • if语句的格式3:
		if(比较表达式1) {
			语句体1;
		}else if(比较表达式2) {
			语句体2;
		}else if(比较表达式3) {
			语句体3;
		}
		...
		else {
			语句体n+1;
		}
  • 执行流程:
    • 首先计算比较表达式1看其返回值是true还是false,

    • 如果是true,就执行语句体1,if语句结束。

    • 如果是false,接着计算比较表达式2看其返回值是true还是false,

    • 如果是true,就执行语句体2,if语句结束。

    • 如果是false,接着计算比较表达式3看其返回值是true还是false,

    • 如果都是false,就执行语句体n+1。

  • 注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示

选择结构if语句的嵌套使用(掌握)

  • 案例演示
    • 需求:获取三个数据中的最大值
    • if语句的嵌套使用。

选择结构switch语句的格式及其解释(掌握)

  • switch语句的格式
		switch(表达式) {
		      case 值1:
				语句体1;
				break;
			    case 值2:
				语句体2;
				break;
			    …
			    default:	
				语句体n+1;
				break;
	    }
 
  • switch语句的格式解释
  • 面试题
    • byte可以作为switch的表达式吗?
    • long可以作为switch的表达式吗?
    • String可以作为switch的表达式吗?
  • 执行流程
    • 先计算表达式的值
    • 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句

选择结构switch语句的练习(掌握)

  • 整数(给定一个值,输出对应星期几)
  • 字符串 匹配是否退出

选择结构switch语句的注意事项(掌握)

  • 案例演示
    • case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    • default可以省略吗?
      • 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
      • 特殊情况:
        • case就可以把值固定。
        • A,B,C,D
    • break可以省略吗?
      • 最后一个可以省略,其他最好不要省略
      • 会出现一个现象:case穿透。
      • 最终我们建议不要省略
    • default一定要在最后吗?
      • 不是,可以在任意位置。但是建议在最后。
    • switch语句的结束条件
      • 遇到break就结束了
      • 执行到switch的右大括号就结束了

选择结构switch语句练习(掌握)

  • 看程序写结果:
		int x = 2;
		int y = 3;
		switch(x){
			default:
				y++;
				break;
			case 3:
				y++;
			case 4:
				y++;
		}
		System.out.println("y="+y);
  • 看程序写结果:
		int x = 2;
		int y = 3;
		switch(x){
			default:
				y++;
			case 3:
				y++;
			case 4:
				y++;
		}
		System.out.println("y="+y);

选择结构if语句和switch语句的区别(掌握)

  • 总结switch语句和if语句的各自使用场景
  • switch建议判断固定值的时候用
  • if建议判断区间或范围的时候用
  • 案例演示
    • 分别用switch语句和if语句实现下列需求:
      • 键盘录入月份,输出对应的季节
        春季 1-3
        夏季 4-6
        秋季 7-9
        冬季 10-12

课堂练习

  1. 练习双项if
    1. 从键盘录入两个数并判断大小,按照从大到小输出
    2. 从键盘录入一个数判断该数是奇数还是偶数
      a b c a + b >c &&  a+ c >b &&   b+c >a
    3. 从键盘录入3个数.判断这三个数是否可以构成3角形.
  2. 练习嵌套if
    1. 根据年龄判断人的生命期:60岁以上—老年人;40~60岁—中年人;20~40岁—青年人;10~20岁—青少年;10岁以下—儿童,

预习

  1. for的三个表达式的写法以及含义.思考是否可以省略
  2. while的写法.
  3. do-while的写法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值