Java 条件语句 - if...else
一个 if 语句包含一个布尔表达式和一条或多条语句。
语法
if 语句的用语法如下:
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。
Test.java 文件代码:
public class Test {
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print("这是 if 语句");
}
}
}
以上代码编译运行结果如下:
这是 if 语句
if...else语句
if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。
语法
if…else 的用法如下:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
实例
Test.java 文件代码:
public class Test {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print("这是 if 语句");
}else{
System.out.print("这是 else 语句");
}
}
}
以上代码编译运行结果如下:
这是 else 语句
if...else if...else 语句
if 语句后面可以跟 elseif…else 语句,这种语句可以检测到多种可能的情况。
使用 if,else if,else 语句的时候,需要注意下面几点:
- if 语句至多有 1 个 else 语句,else 语句在所有的 elseif 语句之后。
- if 语句可以有若干个 elseif 语句,它们必须在 else 语句之前。
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
语法
if...else 语法格式如下:
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
实例
Test.java 文件代码:
public class Test {
public static void main(String args[]){
int x = 30;
if( x == 10 ){
System.out.print("Value of X is 10");
}else if( x == 20 ){
System.out.print("Value of X is 20");
}else if( x == 30 ){
System.out.print("Value of X is 30");
}else{
System.out.print("这是 else 语句");
}
}
}
以上代码编译运行结果如下:
Value of X is 30
嵌套的 if…else 语句
使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 elseif 语句中使用 if 或者 elseif 语句。
语法
嵌套的 if…else 语法格式如下:
if(布尔表达式 1){
////如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
////如果布尔表达式 2的值为true执行代码
}
}
你可以像 if 语句一样嵌套 else if...else。
实例
Test.java 文件代码:
public class Test {
public static void main(String args[]){
int x = 30;
int y = 10;
if( x == 30 ){
if( y == 10 ){
System.out.print("X = 30 and Y = 10");
}
}
}
}
以上代码编译运行结果如下:
X = 30 and Y = 10



alan.huang
407***3@qq.com
运用前面变量和for循环,以及if知识,编制一个小程序,程序的功能是在控制台输入由*号组成的菱形。请看以下代码:
public class Demo2 { // 下面是升序的代码 public void prit1(float c) { float p = c / 2;// 升序排序 float d;// 声明行数变量 float e;// 声明打印*号的变量 float f;// 声明打印空格的变量 float r;// 声明升序排序 float s = c % 2;// 取模 if (s == 0) { System.out.println("你输入的数据不能形成菱形结构"); } else { for (d = 1; d <= p; d++) { for (f = p; f >= d; f--) { System.out.print(" "); } for (e = 1; e <= d * 2 - 1; e++) { if (e == 1 || e == d * 2 - 1) { System.out.print("*");// 如果是第一个数和最后一个数,就输入* } else { System.out.print(" ");// 否则输入空格 } } System.out.println(); } } } // 下面是打印倒序的代码 public void prit2(float m) { float i;// 声明行数变量 float j;// 声明打印*号的变量 float k;// 声明打印空格数的变量 float n = m / 2 + 1;// 倒序排序 float o = m % 2;// m取模 if (o == 0) { System.out.print(""); } else { for (i = 1; i <= n; i++)// 行数循环; { // 打印*号前打印空格; for (k = 0; k < i - 1; k++) { System.out.print(" "); } // 下面打印*号个数的循环; for (j = (n - k) * 2 - 2; j >= 1; j--)// 打印*号个数的循环; { if (j == (n - k) * 2 - 2 || j == 1) { System.out.print("*"); } else { System.out.print(" "); } } // 打印完*号换行打印; System.out.println(); } } } public static void main(String[] args) { Demo2 a = new Demo2(); float b = 11;// 根据行数,判断是否可以组成菱形。如果是基数行可以输入对应的菱形,如果是偶数行则输出"你输入的数据不能形成菱形结构"; a.prit1(b); a.prit2(b); } }alan.huang
407***3@qq.com
Ant阿布
163***4484@qq.com
把需要打印的菱形放在一个正方形里面,控制台打印出一个a*a的区域,找出菱形边所在的函数,逢边上的点打印"*",其他点打印" "。不用区分升序降序,请看代码:
public class Draw{ int a,b; //a是要生成的菱形行数 int h; //h是方法中的参数,也是行数 int i,j; //i j是循环结构参数 public void draw(int h ){ for(i = 1 ;i <= h ;i++){ //逐行打印 for(j = 1;j <= h;j++){ //每行打印个数与行数保持一致 //下面语句是菱形四条边的函数,在边上的坐标点,打印*,否则打印空格 if(j == (h + 3) / 2 - i || j == (h - 1) / 2 + i || j == i - (h - 1 ) / 2 || j == (3 * h + 1) / 2 - i){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); //第 i 行打印完换行 } } public static void main(String[] args){ //静态方法 Draw b = new Draw(); //初始化方法 int a = 35; //赋值并执行draw方法 b.draw(a); } }Ant阿布
163***4484@qq.com
tfbyly
905***717@qq.com
输出 200 以内能被 7 整除但是不能被 4 整除的数字,并且每行输出 6 个:
public class Test{ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输出200以内能被7整除但是不能被4整除的数字"); int k = 1;// 一个计数器,后面用于控制每行打印的个数 // 用for循环进行200以内的循环 for (int i = 0; i <= 200; i++) { // if语句判断是否为题目中的条件,如果满足,则打印 if (i % 7 == 0 && i % 4 != 0) { System.out.print(i + "\t"); // 每次循环都将计数器+1 k++; // 如果计数器大于6就换行,并且将计数器归一,重新进入下一次循环计数 if (k > 6) { System.out.println(); k = 1; } } } } }执行结果:
tfbyly
905***717@qq.com
王木木
405***923@qq.com
绘制一个空心的菱形,并且通过变量 a 来控制菱形的大小。
public class Rhombus { int x, y;// 菱形上部的参数 int z, k;// 绘制菱形下部的参数 int b, c; private void draw(int a) { for (x = 0; x <= a; x++) { for (y = a; y >= x; y--) { if (y > x) { System.out.print(" "); }//绘制菱形上半部分左边的空格部分,逐行递减 if (y == x) { System.out.print("*"); }//绘制菱形上半部分左边的边 } for (b = 1; b <= 2 * x; b++) { if (b < 2 * x) { System.out.print(" ");//绘制菱形上半部分中间的空格 } else if (b == 2 * x) { System.out.print("*");//绘制菱形上半部分有伴部分的边 } } System.out.println();//换行 }//菱形上半部分绘制完毕 for (z = 0; z < a; z++) { for (k = 0; k <= z; k++) { if (k == 0) { System.out.print(" "); } if (k < z) { System.out.print(" "); }//绘制菱形下半部分左边的空格部分,数量逐行递增 if (k == z) { System.out.print("*"); }//绘制菱形下半部分左边的边 } for (c = 2 * a - 3; c >= 2 * z; c--) { if (c > 2 * z) { System.out.print(" ");//绘制菱形下半部分中间的空格 } else if (c == 2 * z) { System.out.print("*");//绘制菱形下半部分有伴部分的边 } } System.out.println();//换行 }//菱形下半部分绘制完毕 } public static void main(String[] args) { Rhombus myRhombus = new Rhombus(); int a = 10;//可以更改,控制菱形的大小 myRhombus.draw(a); } }修改 int a= 后面的数字,可以更改菱形的大小。
王木木
405***923@qq.com