对于Java来说,控制语句分为三类:顺序、选择和循环。
1. “顺序结构”代表“先执行 a,再执行 b”的逻辑。比如,先找个女朋友,再给女朋友打 电话;先订婚,再结婚;
2. “条件判断结构”代表“如果…,则…”的逻辑。比如,如果女朋友来电,则迅速接电话; 如果看到红灯,则停车;
3. “循环结构”代表“如果…,则重复执行…”的逻辑。比如,如果没打通女朋友电话,则 再继续打一次; 如果没找到喜欢的人,则再继续找
条件判断语句
条件判断结构(选择结构) 条件判断结构有:if 结构和 switch 结构。而 if 结构又可以分为 if 单分支结构、if-else 双分 支结构、if-else if-else 多分支结构。
1.if 单分支语句 if(布尔表达式){
语句块 }
注:1. 如果 if 语句不写{},则只能作用于后面的第一条语句。
2. 强烈建议,任何时候都写上{},即使里面只有一句话!
实例如下
import java.util.Random;
//掷骰子游戏
public class Demo1 {
//random 表示产生0-1之间的随机数 类型为double
public static void main(String[] args) {
int x = (int)(6*Math.random())+1;
// System.out.println(x);
int y = (int)(6*Math.random())+1;
int z = (int)(6*Math.random())+1;
if(x+y+z>6 && x+y+z<10){
System.out.println("运气一般");
}
if(x+y+z>=10 && x+y+z<14 ){
System.out.println("运气不错");
}
if(x+y+z>=14 && x+y+z<18){
System.out.println("运气棒极了");
}
}
}
2.if else 双分支 if(布尔表达式){
语句块
}else{
语句块}
代码示例
public class Demo2 {
public static void main(String[ ] args) {
//随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长
double r = 4 * Math.random();
//Math.pow(r, 2)求半径 r 的平方
double area = 3.14* r*r;
double circle = 2 * Math.PI * r;
System.out.println("半径为: " + r);
System.out.println("面积为: " + area);
System.out.println("周长为: " + circle);
//如果面积>=周长,则输出"面积大于等于周长",否则,输出周长大于面积
if(area >= circle) {
System.out.println("面积大于等于周长");
} else {
System.out.println("周长大于面积");
}
}
}
3.if-else if-else 多分支结构
int x1 = (int)(6*Math.random())+1;
// System.out.println(x);
int y1 = (int)(6*Math.random())+1;
int z1 = (int)(6*Math.random())+1;
int total = x1 + y1 +z1;
if(total > 6){
System.out.println("运气一般");
}else if(total >10){
System.out.println("运气不错");
}else if (total <18){
System.out.println("运气真不错");
}else {
System.out.println("数据异常");
}
4.switch分支语句
switch (表达式) {
case 值 1: 语句块 1; [break];
case 值 2: 语句块 2; [break];
… … … … …
[default: 默认语句块;] }
public static void main(String[] args) {
int month = 4;
switch (month){
case 1:
System.out.println("January");
break;
case 2:
System.out.println("February");
break;
case 3:
System.out.println("March");
break;
case 4:
System.out.println("April");
break;
case 5:
System.out.println("May");
break;
case 6:
System.out.println("June");
break;
case 7:
System.out.println("July");
break;
case 8:
System.out.println("August");
break;
case 9:
System.out.println("September");
break;
case 10:
System.out.println("October");
break;
case 11:
System.out.println("November");
break;
case 12:
System.out.println("December");
break;
}
}
循环结构
1.while循环
while (布尔表达式) {
循环体;
}
//计算从1到100的总数
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i <= 100){
sum = sum + i;
i++;
}
System.out.println("总数为"+sum);
}
2.do while 循环
do {
循环体;
} while(布尔表达式) ;
public static void main(String[] args) {
//do while 循环来实现从1~100相加
int i = 1;
int sum = 0;
do{
sum = sum + i;
i++;
}while (i <= 100);
System.out.println("总数为"+sum);
}
3.for循环
for (初始表达式; 布尔表达式; 迭代因子)
{ 循环体;
}
public static void main(String[] args) {
//用for循环实现从1~100相加
int sum = 0;
for(int i = 1;i <= 100;i++){
sum = sum + i;
}
System.out.println("总数为"+sum);
}
4.嵌套循环
循环语句内部,再写一个或多个循环,称为嵌套循环。一般工作中多见的就是两层。
public static void main(String[] args) {
//用for循环实现九九乘法表
for(int i = 1;i < 10;i++){
for(int j = 1;j <= i;j++){
System.out.print(j + "*" + i + "=" + (i * j < 10 ? (" " + i * j) : i * j) + " ");
}
System.out.println();
}
}