Java基础语法
流程控制
条件判断
-
if条件语句
if语句指的是如果满足某种条件,就进行某种处理;
代码格式:
if(判断语句1){ 执行语句; }
-
if/else语句指的是如果满足某种条件,就执行if代码块;如果不满足,则执行else代码块;
代码格式:
if(判断语句){ 执行语句1; }else{ 执行语句2; }
-
if/else if/else,else if语句可以多个;
if(判断语句1){ 执行语句1; }else if(判断语句2){ 执行语句2; } …… else if(判断语句n){ 执行语句n; } else{ }
实例:
public class Test4 { public static void main(String[] args) { int i=100; //if语句 if(i>0){ System.out.println("i大于0"); } //if/else语句 if (i>0){ System.out.println("i大于0"); }else{ System.out.println("i小于或等于0"); } //if/else if/else语句 if (i>0){ System.out.println("i大于0"); }else if (i<0){ System.out.println("i小于0"); }else{ System.out.println("i等于0"); } } }
-
有时候分支是根据常量值进行判断的,这时候虽然可以使用if/else来实现,但是用switch/case更为清晰;
-
switch/case中的表达式只能使用规定的基本数据类型,JDK1.5前可以使用:
基本数据类型byte
基本数据类型short
基本数据类型int
字符型char
-
不能使用:
基本数据类型float、double、long、boolean
-
JDK5之后,switch表达式类型新增加支持:枚举(enum)
-
JDK7之后,switch表达式类型新增加支持:String
代码格式:
switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; ...... case 常量表达式n : 语句n; break; default: 语句n+1; break; }
实例:
import java.util.Scanner; public class Test5 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("1.登录2.注册0.退出"); System.out.print("请输入您的选择:"); int sel=input.nextInt(); switch (sel){ case 1: System.out.println("欢迎来到登录页面!"); break; case 2: System.out.println("欢迎来到注册页面!"); break; case 0: System.out.println("退出成功,欢迎下次光临!"); break; default: System.out.println("输入有误,请重新输入!"); break; } } }
循环语句
-
for循环结构:
for(初始化语句;判断条件语句;控制语句){ 循环体语句块; }
实例:
public class Test6for { public static void main(String[] args) { for (int i=0;i<100;i++){ System.out.println("hello world"); } //可以通过编译,死循环 for (int i=0;i<100;){ System.out.println("hello world"); } //无法通过编译,中间的判断条件语句一定是布尔类型 for (int i=0;i;i++){ System.out.println("hello world"); } //for (;;){}能否编译通过? //可以通过编译,死循环 for (;;){ System.out.println("hello world"); } } }
-
while循环基本结构如下所示:
while(判断条件语句){ 循环体语句块; 控制语句; }
实例:
public class Test7while { public static void main(String[] args) { int i=0; //死循环 while(i<100){ System.out.println("hello world"); } //循环100次 while(i<100){ System.out.println("hello world"); i++; } } }
-
do while循环基本结构如下所示:
do{ 循环体语句块; 控制语句; } while(判断条件语句) ;
实例:
public class Test8DoWhile { public static void main(String[] args) { int i=0; do { System.out.println("hello world"); i++; }while (i<100); } }
-
while循环和do while循环的区别:
-
do …while至少会执行1次,先执行后判断。
-
while先判断,再执行。
-
只有第一次判断条件为假的情况,两个结果是不同的。
-
-
break和continue区别
-
在循环控制语句的循环体中,可以使用continue语句,表示不再继续循环体后面的代码,但是会继续下一次循环;
-
在循环控制语句的循环体中,可以使用break语句,表示终止当前循环,跳出循环体,不再继续下次循环;
实例:
public class Test9ContinueBreak { public static void main(String[] args) { //第五次不打印 for (int i=1;i<11;i++){ if(i==5){ continue; } System.out.println("第"+i+"次执行打印,hello world"); } //第五次往后都不打印 for (int i=1;i<11;i++){ if(i==5){ break; } System.out.println("第"+i+"次执行打印,hello"); } } }
-
-
for和while循环的区别:
-
for适合循环次数确定
-
while适合循环次数不确定
实例:
import java.util.Scanner; /** *模拟用户输入密码情景,循环次数不确定,适合用while循环 */ public class Test10ForWhile { public static void main(String[] args) { //for(int i=0;i<1000;i++){}//循环次数确定 // while适合循环次数不确定 Scanner input = new Scanner(System.in); while(true){ System.out.print("请输入用户名:"); String username = input.next(); System.out.print("请输入密码:"); String password = input.next(); //指定用户名abc,密码111 if(username.equals("abc") && password.equals("111")){ break; }else{ System.out.println("用户名或者密码错误,请重新输入!"); } } } }
-
-
练习:通过3种循环完成5个学生java成绩数据的输入的工作。
import java.util.Scanner; /** * 通过3中循环完成5个学生java成绩数据的输入的工作。 */ public class Work2 { public static void main(String[] args) { Scanner input=new Scanner(System.in); //for循环 for (int i = 0; i < 5; i++) { System.out.println("请输入第"+(i+1)+"个同学的java成绩:"); int score = input.nextInt(); if (score>=0&&score<=100) { System.out.println("成功输入第"+(i+1)+"个同学的java成绩"); }else{ System.out.println("成绩不合法,请输入0~100之间的数!"); i--; } } //while循环 int j=0; while(j<5){ System.out.println("请输入第"+(j+1)+"个同学的java成绩:"); int score = input.nextInt(); if (score>=0&&score<=100) { System.out.println("成功输入第"+(j+1)+"个同学的java成绩"); }else{ System.out.println("成绩不合法,请输入0~100之间的数!"); j--; } j++; } //do-while循环 int i=0; do { System.out.println("请输入第"+(i+1)+"个同学的java成绩:"); int score = input.nextInt(); if (score>=0&&score<=100) { System.out.println("成功输入第"+(i+1)+"个同学的java成绩"); }else{ System.out.println("成绩不合法,请输入0~100之间的数!"); i--; } i++; }while(i<5); } }