
正文
java选择执行代码块 java执行代码片段
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java的四种选择结构 并举例
方法/步骤
什么是if 选择结构呢?
if选择结构是根据条件判断之后再做处理的一种语法结构,语法结构如下:
if(条件) {
代码块 //条件成立后要执行的代码,可是一条语句,也可以是一组语句
}
public class Demo {
public static void main( String [] main) {
//语句1
//语句2
if ( 条件) {
//语句3
}
//语句4
}
}
如何使用if选择结构:
1.基本的if选择结构;举例::
这里输入张浩的成绩后,通过判断得知是否大于98分,若大于98,则会输出“老实说:不错,奖励一个Mp3”,否则,不会输出这句话,通过这个简单的例子可以体会到,if选择结构先判断后执行!
复杂的if选择结构:
如下
怎么连接问题中的条件,
张浩java成绩98分 并且张浩音乐成绩80分
张浩java成绩==100分 并且 张浩音乐成绩70分
提出条件,是否可以如下的编写:
score198score280||score1==100score270
( score198score280(||(score1==100score270)
其中score表示张浩的java成绩score表示张浩的音乐成绩
显然第二种方法更是可以清楚的描述张浩的成绩!
使用if-else结构: 如果张浩java成绩大于98分,那么老实奖励他一个Mp4,如果张浩的成绩小于呢! 那么老师就要责罚他喽!
实现如下代码功能:提现if-else结构:
多重if选择结构:
多重if选择结构不是多个基本的if选择结构简单的排列在一起,它的形式具体如下:
if(条件1){
代码块1
}else if(条件2){
代码块2
}else{
代码块3
}
多重if程序如何执行呢!首先,程序判断条件1,如果成立,则执行代码块1,然后直接跳出这个多重if选择结构,执行它后面的代码。这种情况下,代码块2和代码块3都不会被执行,如果条件1不成立,则判断条件2,如果条件2不成立就直接执行条件3!
一下运行结果提现 多重if循环的判断过程:
int score = 70; //考试成绩
if (score = 80 ) {
System.out.println("良好");
} else if (score = 60 ) {
System.out.println("中等");
} else {
System.out.println("差");
嵌套if选择结构:
嵌套if选择结构就是在if选择结构里面在嵌人if选择结构:
if(条件1){
if(条件2){
代码块1
}else{
代码块2
}
}else{
代码块3
}
实现嵌套if选择结构运行代码程序:
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入比赛成绩:");
double score= input.nextDouble();
System.out.print("请输入性别:");
String gender = input.next();
if(score=10){
if(gender.equals("男")){
System.out.print("进入男子组决赛组!");
}else if(gender.equals("女")){
System.out.print("进入女子决赛组!");
}
}else{
System.out.print("淘汰!");
}
}
}
相关问答
Q1: JAVA 中的 synchronized 代码块用法
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用.
Q2: java几种代码块的执行顺序实例
1.
顺序执行java选择执行代码块,就是正常情况下
2.
选择执行(分支),就是用if
else...可以使用多次,还有个switch
case
3.
循环执行,常用java选择执行代码块的用for循环,while循环,do
while循环
就我理解题意好像就这三种
Q3: 是不是 java static代码块优先执行啊?
static代码块是在类初始化时就被虚拟机执行的,所以最先输出的是d。
main方法是静态方法,是在类加载完之后由虚拟机调用的,调用之后才会输出c1。
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;
Q4: 关于java静态代码块的详细运行过程问题
废话,静态块先执行,类加载java选择执行代码块的时候就执行,一个类要想运行,首先被Java虚拟机将class文件内部字节码指令读取至内存并且包装成一个Class类型的对象,这个过程称为类加载,Class类的一个对象是对某一个类的一个描述java选择执行代码块!
不是说运行到Chinese.sing();时输出了static code,Chinese.sing();是什么?是方法调用,Chinese是类,sing是该类的静态方法,你要想调用sing方法,首先第一步就是类加载,类都没加载,Java虚拟机都不认识java选择执行代码块他,运行个屁呀!
所以第一步是类加载,注意!static块,也就是静态块,在类加载的时候就执行了,而且只执行一次,因为不可能进行第二次类加载,从这个意义上说,静态的成员是第一时间执行的,然后才轮到别人!
Q5: java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢
还是不得不拿出和说事了。以下拿类T作为讲解的对象类型吧:
class T{
private static final String msg = "this is a test class!";
private static int version = 1;
static{
version = 2;
desc = "class T";
}
private static String desc = “T is a test Class”;
private int age = 2;
{
age = 10;
name = "panda";
}
public T(){
age = 12;
name = "foxli";
}
private String name = "micky";
}
类T,存在静态域version和desc,实例域age和name。
类中,存在静态代码块static{}以及实例化代码块{}和默认的构造方法。
------------------------------------------------------------------------------------------------------------
先来说一下类型初始化方法:
JVM通过Classload进行类型加载时,如果在加载时需要进行类型初始化操作时,则会调用类型的初始化方法。类型初始化方法主要是对static变量进行初始化操作,对static域和static代码块初始化的逻辑全部封装在方法中。
java.lang.Class.forName(String name, boolean initialize,ClassLoader loader),其中第二个参数就是是否需要初始化。
Java类型初始化过程中对static变量的初始化操作依赖于static域和static代码块的前后关系,static域与static代码块声明的位置关系会导致java编译器生成方法打字节码。
由上例子,T类型的类型初始化方法最后编译出来的字节码顺序大概是这样的:
T.{
private static int version;
private static String desc;
version = 1;
version = 2;
desc = "class T";
desc = "T is a test Class";
}
类型的初始化方法只在该类型被加载时才执行,且只执行一次。
-------------------------------------------------------------------------------------------------------------
接下来说一下对象实例化方法:
Java对象在被创建时,会进行实例化操作。该部分操作封装在方法中,并且子类的方法中会首先对父类方法的调用。
Java对象实例化过程中对实例域的初始化赋值操作全部在方法中进行,方法显式的调用父类的方法,实例域的声明以及实例初始化语句块同样的位置关系会影响编译器生成的方法的字节码顺序,方法以构造方法作为结束。
由上例子,T对象的对象实例化方法最后编译出来的字节码顺序大概是这样的:
T.{
int age;
String name;
this.age = 2;
this.age = 10;
this.name = "panda";
this.name = "micky";
this.age = 12;
this.name = "foxli";
}
对象实例化方法以构造方法作为结束。当前并没有考虑存在父类的情况,如果存在,方法首先会调用父类的方法。
-------------------------------------------------------------------------------------------------------------
PS:这里面的msg称为编译时常量,他不再方法中出现。
其中方法在javap命令中没有显示,javap输出的static{}就是方法。
关于java选择执行代码块和java执行代码片段的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






