【Java】day4-- if、switch、while、for语句部分知识点总结

(一)switch语句

注意事项:

1.switch语句只能用byte、short、 char、 int ,从jdk7.0开始可以用字符串类型。
2.case语句后面只能跟常量,不能跟变量、表达式。
3.switch语句的停止条件:选项匹配之后只有遇到break或者结束switch的大括号才会结束执行,否则会按代码顺序执行,且不会再判断选项是否匹配。
4.不管代码顺序如何,匹配时优先判断case,最后判断default。

(二)死循环写法

for( ; ; ) 、while(true)

(三)while

while(false){},在编译时会报错,因为java编译器中不允许有根本不能执行的代码出现。

但是boolean flag=false,while(flag){},编译时不会报错,因为编译时只会识别出flag是boolean类型,但不知道flag变量具体的值,所以编译会通过,但是执行时该代码段依然不会执行。

 

(四)题目举例

1、数字游戏

规则:

    1.产生一个1-10之间的随机数
    2.接受键盘录入一个数字,判断录入的数字是否与随机数相等
    3.最多只能猜三次

产生随机数的步骤:
    1.创建一个随机数对象 Random
    2.调用随机数对象的nextInt()方法即可产生一个随机数
    3.导包 import java.util.*;

接受键盘录入数字的步骤:

    1.创建一个扫描器 Scanner

    2.调用扫描器的方法nextInt(),扫描数据,键盘录入数据默认为字符串,nextInt()将字符串强制转换为int。

    3.导包  import java.util.*;

代码如下:

import java.util.*;
class  work3
{
	public static void main(String[] args) 
	{
		//创建一个随机数对象
		Random random=new Random();
		//调用随机数对象的nextInt()方法即可产生一个随机数
		int num=random.nextInt(11);//0-n-1
		//System.out.println("随机数是:"+num);
		//接受键盘录入
		//创建一个扫描器
		Scanner scanner=new Scanner(System.in);
		//调用扫描器的方法,扫描数据
		int times=0,flag=0;
		while(times<3){
			times++;
			int guess=scanner.nextInt();//键盘录入数据
			if(guess==num)
			{
				flag=1;
				System.out.println("猜对了!!!");
				break;
			}
			else if(guess>num)
				System.out.println("猜大了~~~还剩余"+(3-times)+"次");
			else
				System.out.println("猜小了~~~还剩余"+(3-times)+"次");
			
		}
		if(flag==0)
			System.out.println("很遗憾猜错了");
	}
}

2、用户登录

要求:从键盘输入用户名和密码,若输入的用户名和密码分别为root,admin显示登录成功,否则显示用户名或密码错误。

键盘录入字符串的步骤与录入数字步骤相同,只是调用的是next()方法。

判断两个字符串是否相等时,用str1.equals(str2),不能用==。

==的作用:

    1.普通数据类型,用于判断两个数据的值是否相等,如int,char,byte等。

    2.引用数据类型,用于判断两个变量的内存地址是否相等,即是否指向同一个内容,如字符串,数组等。

代码如下:

import java.util.*;
class work2 
{
	public static void main(String[] args) 
	{
		//创建扫描器对象
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入您的用户名");
		//调用扫描器的扫描方法,扫描数据  
		String name=scanner.next();//表示录入字符串
		System.out.println("请输入您的密码");
		String password=scanner.next();

		if("root".equals(name) && "admin".equals(password))
			System.out.println("登录成功!");
		if(!"root".equals(name))
			System.out.println("用户名错误");
		if(!"admin".equals(password))
			System.out.println("密码错误");
		//System.out.println("abc".equals(line));//字符串是引用数据类型,==用于引用数据类型,比较的是内存地址,即字符串的首地址

	}
}

3、break关键字默认是作用于当前层循环,能否使其作用于其他循环?(continue方法类似)

通过和标签一起使用,标签的使用规则:

       1.标签的命名和标识符的命名规则一样。

       2.若可能因为代码无法执行导致编译不通过,则最好不用标签。

class if1 
{
	public static void main(String[] args) 
	{

		outer:for(int i=0;i<2;i++){
			inner:for(int j=0;j<3;j++){
				System.out.println("Hello World!");
				break outer;
			}
		}
	}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值