首页 > 代码库 > Java之分支和循环
Java之分支和循环
Java中的分支语句:
if语句:
if语句的四种写法:
(1) if(表达式_布尔值) { ... } (2) if(表达式_布尔值) { ... } else { ... } (3) if(表达式_布尔值) { ... } else if(表达式_布尔值) { ... } (4) if(表达式_布尔值) { ... } else if(表达式_布尔值) { ... } else { ... }
if条件语句是一个重要的编程语句,它用于告诉程序在某个条件成立的情况下执行某段程序,而在另一种情况下执行另外的语句。
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if…else语句和if…else if多分支语句。
if语句例子:
public class GetTerm { // 创建主类 public static void main(String args[]) { // 主方法 int x = 20; // 声明int型局部变量 if (x > 30) { // 判断变量x是否大于30 System.out.println("a的值大于30"); // 条件成立的输出信息 } else if (x > 10) { // 判断变量x是否大于10 System.out.println("a的值大于10,但小于30"); // 条件成立的输出信息 } else if (x > 0) { // 判断变量x是否大于0 System.out.println("a的值大于0,但小于10"); // 条件成立的输出信息 } else { // 当以上条件都不成立时,执行的语句块 System.out.println("a的值小于0"); // 输出信息 } } }
switch语句:
int a = 2; switch(a) { case 1 ... break; case 3 ... break; case 5 ... break; default ...
}
switch语句中表达式的值必须是整型或字符型,常量值1~常量值n必须也是整型或字符型。switch语句首先计算表达式的值,如果表达式的值和某个case后面的变量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case里的若干个语句,直到遇到break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,而且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。
switch语句例子:
public class GetSwitch { // 创建类 public static void main(String args[]) { // 主方法 int week = 2; // 定义int型变量week switch (week) { // 指定switch语句的表达式为变量week case 1: // 定义case语句中的常量为1 System.out.println("Monday"); // 输出信息 break; case 2: // 定义case语句中的常量为2 System.out.println("Tuesday"); break; case 3: // 定义case语句中的常量为3 System.out.println("Wednesday"); break; default: // default语句 System.out.println("Sorry,I don‘t Know"); } } }
if switch的区别:
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
*用switch能做的,用if都能做,反过来则不行
Java中的循环语句:
(1)
for(int i=0;i<10;i++) {
...
}
(2)
while(表达式_布尔值) {
}
(3)
do {
} while(表达式_布尔值);
三种循环语句简单实例:
public class Test2 { public static void main(String[] args){ int i=0; for(;i<3;i++){ System.out.println("for:"+i); } while(i<6){ System.out.println("while:"+i); i++; } do{ System.out.println("do:"+i); i++; }while(i<9); } }
综合例子1:
如何输入成绩,得出评分:
import java.util.Scanner; public class Lianxi { public static void main(String[] args){ int i=1;
//使用死循环不断判断 for(;i<10;i--){ Scanner scanner=new Scanner(System.in); String str=scanner.nextLine(); int a =Integer.parseInt(str); if(str=="55"){ i=11; System.out.println("结束了"); } if(a<=100&&a>80){ System.out.println("优秀"); }else if(a<=80&&a>60){ System.out.println("良好"); }else if(a<=60&&a>50){ System.out.println("尚可"); }else if(a<=50&&a>=0){ System.out.println("不可"); }else { System.out.println("输入有错误!!!"); } } } }
综合例子2:
输出菱形
public class Var_02 { public static void main(String args[]) { int lineCount = 17;// 输出的菱形有多少行,请赋值成奇数 int maxLineNum = (lineCount + 1) / 2;// 菱形最多一行 for (int i = 1; i <= maxLineNum; i++) {// 循环菱形数量越来越多的几行 for (int space = 1; space <= maxLineNum - i; space++) {// 输出空格,数量=最后一行-当前行数 System.out.print(" "); } for (int star = 1; star <= (i * 2) - 1; star++) {// 输出星号,数量=行数*2-1 System.out.print("* "); } System.out.println();// 换行 } int declineCount = lineCount - maxLineNum;// 计算剩下的几行,这几行星号的数量是递减的 for (int i = 1; i <= declineCount; i++) {// 循环菱形数量越来越少的行数 for (int space = 1; space <= i; space++) {// 输出空格,数量等于当前的行数 System.out.print(" "); } for (int star = 1; star <= (declineCount - i + 1) * 2 - 1; star++) {// 输出星号,数量等于(总数-当前行数)*2-1 System.out.print("* "); } System.out.println(); } } }
补充:
foreach语句:
是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便(本书将在第6章对数组进行详细的介绍),语法如下所示:
for(元素变量x : 遍历对象obj) { 引用了x的java语句; }
例子:
public class Repetition { // 创建类Repetition public static void main(String args[]) { // 主方法 int arr[] = { 7, 10, 1 }; // 声明一维数组 System.out.println("一维数组中的元素分别为:"); // 输出信息 for (int x : arr) { //foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出 System.out.println(x); } } }
Java之分支和循环