Java条件语句 if else
条件语句用于基于不同的条件来执行不同的动作。
if (值为boolean类型的条件)
{
当条件为 true 时执行的代码
}
else
{
当条件不为 true 时执行的代码
}
判断两个数大小的方法
public static int max2(int c,int d){
if(c > d){
System.out.println("c > d");
return c;
}else if(c == d){
System.out.println("c == d");
return -1;
}else{
System.out.println("c < d");
return d;
}
}
循环语句:
- for循环语句
- while循环语句
- do while循环语句
for循环语句
循环可以将代码块执行指定的次数。
语法:
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行,通常我们会使用语句 1 初始化循环中所用的变量。
语句 2 定义运行循环(代码块)的条件,通常语句 2 用于评估初始变量的条件。
语句 3 在循环(代码块)已被执行之后执行,通常语句 3 会增加初始变量的值。
求当前数字是否为素数的方法
public static boolean isPrime(int n){
for(int i = 2;i < n;i++){
if(n % i == 0){//布尔表达式
return false;
}
}
return true;
}
求阶乘的方法
public static int fac(int n){
int rtv = 1;
for(int i = 2;i <= n;i++){
rtv = rtv*i;
}
return rtv;
}
乘法表
public static void muti(int n){
for(int i = 1;i <= n;i++){
for(int j = 1;j <= i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
while 循环语句
语法:
while(布尔表达式 ) {
//循环内容
}
只要布尔表达式为 true,循环就会一直执行下去。
循环输出10~19:
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
do…while 循环语句
语法:
do {
//代码语句
}while(布尔表达式);
先执行循环体中的代码语句, 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
循环输出10~19:
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
Java 增强 for 循环:Java5 引入了一种主要用于数组的增强型 for 循环。
语法:
for(声明语句 : 表达式)
{
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
用加强for循环输出numbers数组:
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(" ");
}
break,continue关键字
break 语句用于跳出循环或switch语句中的语句块。
continue 用于跳过循环中的一个迭代。
1+2+3+4+ m > 1000:
public static int fun4(){
int tmp = 0;
int i;
for(i = 1;;i++){//判断条件为下面if语句
tmp = tmp+i;
if(tmp > 1000){
break;//不会进行i++,直接跳出for循环
}
}
return i;
}
即能被3整除 也能被5整除的数字
public static void fun5(int n){
int i = 0;
for(i = 1;i <= n;i++){
if(i%15 != 0){
continue;//跳出本次循环
}
System.out.println(i);
}
}
switch语句
switch 语句用于基于不同的条件来执行不同的动作。
不能做switch参数的类型:boolean long float double
语法:
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。
实现以下要求:
A:打印80分以上
B:70-80
C :60-70
D :50-60
其他:没救了!!
switch(ch){
case 'A':
System.out.println("80分以上");
break;
case 'B':
System.out.println("70-80");
break;
case 'C':
System.out.println("60-70");
break;
case 'D':
System.out.println("50-60");
break;
default:
System.out.println("没救了");
break;
}
最后,补充一个Java中final的用法:
- 修饰基础数据成员:被final修饰的变量就是一个常量,只能赋值一次。
- 修饰类或对象的引用:在Java中,对象无法被修饰为final,而只能修饰对象的引用。指向的对象的数据依然可以被修改,不能修改的是本身的引用值,即不能再进行重赋值,也就是写死引用,但是不锁定那个对象内部的改变。当一个方法被修饰为final方法时,意味着编译器可能将该方法用内联(inline)方式载入,所谓内联方式,是指编译器不用像平常调用函数那样的方式来调用方法,而是直接将方法内的代码通过一定的修改后copy到原代码中。这样可以让代码执行的更快
- 修饰方法:修饰方法的final是指该方法不可被继承成员重新定义。(注意,这里所说的不能被重新定义,并不是指子类一定不能定义同名方法,如果父类的方法是私有类型,子类是允许定义该方法的,这里指的不能重新定义是指不能通过改写方法来使得方法重写的多态性得以实现。
- 修饰类:当一个类被修饰为final时,不允许该类被继承。