java选择语句及用法

程序结构

顺序结构:

此结构是程序中最简单的的一种结构,在程序执行过程中,它是按照顺序从主函数开始一行接一行的执行,因此语句流程很重要。
一般入门级的程序都是顺序结构。

选择结构:

选择结构分为if 和switch两种语句结构

if语句结构:

分为三种格式:
1.if(布尔表达式){语句体}
这种结构相对简单,先判断()中的语句其布尔值,如果为真,则执行语句体,如果为假,则直接跳过if语句。
在if结构中{}可以省略不写,但是if的语句体中只执行第一条语句,其余则不执行,因此,习惯上还是不要省略{}。例如如下代码:

class IFdemo{
	public static void main(String[] args){
	int a=2000;
	if((a%4==0&&a%100!=0)||(a%400==0)){
	System.out.println("是闰年");
	System.out.println("is true");
	}
	System.out.println("不是闰年");
	}
}

执行结果:
在这里插入图片描述

class IFdemo{
	public static void main(String[] args){
	int a=1000;
	if((a%4==0&&a%100!=0)||(a%400==0))
		System.out.println("是闰年");
		System.out.println("is true");
		System.out.println("不是闰年");
		
	}
}

执行结果:
在这里插入图片描述
2.if(布尔表达式){语句体1}
else{语句体2}
这种方式比较常用,判断出两种情况进行执行,如果布尔表达式为真,则执行语句体1,否则执行语句体2,因此,这种情况下必须执行if语句,不可能直接跳出不执行,
三元运算可以可以转换为此if语句,但是在转换过程中注意条件判断的冗余。
3.if(布尔表达式){语句体1}
else if(布尔表达式){语句体2}

else if (布尔表达式){语句体n}
else{语句体n+1}
从第一个布尔表达式开始进行判断,在前n个布尔表达式中从前往后进行查询,如果哪个布尔表达式的值为true,则执行相应的语句体,否则执行else,值得注意的是,在写布尔表达式时,要注重选择的逻辑性。

/*
输入
数据:输入一个0到100的数
调整数据位置,(个位十位换位置);
指令:与随机数进行比对(三种情况)
输出
*/
import java.util.Scanner;
class demo5{
	public static void main(String[] args){
	double caipiao1=Math.random();
	int caipiao=(int)(caipiao1*1000);
	System.out.println(caipiao);
	int cp=caipiao;
	int cp1=caipiao/100;
	caipiao=caipiao%100;
	int cp2=caipiao/10;
	caipiao=caipiao%10;
	int cp3=caipiao;
	System.out.println("enter a num:");
	Scanner scanner=new Scanner(System.in);
	int a=scanner.nextInt();
	int a1=a;
	int b=a/100;
	a=a%100;
	int c=a/10;
	a=a/10;
	int d=a;
	if(a1==cp)
	{
		System.out.println("100000");
	}
	else if((b*100+d*10+c==cp)||(c*100+b*10+d==cp)||(c*100+d*10+b==cp)||(d*100+b*10+c==cp)||(d*100+c*10+b==cp))
	{
		System.out.println("30000");
		}
	else if((b==cp1&&c!=cp2&&d!=cp3)||(b!=cp1&&c==cp2&&d!=cp3)||(b!=cp1&&c!=cp2&&d==cp3))
	{
		System.out.println("10000");
	}
	else
	{
		System.out.println("0");
	}
	}
}

switch语句

格式:
switch(表达式){
case 值1:语句体1;break;
case 值2:语句体2;break;

default:
语句体n+1
break;
}
此语句从第一行开始执行,表达式在这里是一个变量,在jdk1.7之前,变量的类型可以是int short char byte ,这是因为这些类型可以隐形的向int类型转换,从而进行选择,比如(long,float,double)这些不可以隐形的转化为int,所以如果想使用,必须进行强制类型转换,在jdk1.7版本之后,整形,枚举类型,boolean,字符串都可以使用,但是jdk1.7版本之后并没有新的指令处理string,而是通过调用switch中的string.hashCode,将string转换为int进行判断选择。
在case后边的值只能是常量,不可以是变量,语句体后的break可以省略,如果省略,则不跳出switch语句,直到执行结束,例如:

class demo3{
	public static void main(String[] args){
	int x=3;
	int y=4;
	char n='+';
	switch(n){
	case '+':{
	System.out.println(x+y);
	}
	case '-':{
	System.out.println(x-y);
	}
	case '*':{
	System.out.println(x*y);
	}
	case '/':{
	System.out.println(x/y);
	}
	default:{
	System.out.println(0);
	}
	}
	}
}

最后的default也可以省略,也可以放在任一位置。不要使case后的常量一致或重叠
switch语句相对简单,在这里就不列举了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值