控制语句
控制选择结构语句
if,if else,switch
if语句,条件控制语句
if语句的语法结构,四种编写方式
- if (布尔表达式){
java 语句;
java 语句;
java 语句;
java 语句;
…
} - if(布尔表达式){
java 语句;
…
}else{
java 语句;
java 语句;
…
} - if(布尔表达式){
java 语句;
java 语句;
…
}else if(布尔表达式){
java 语句;
java 语句;
…
}
else if(布尔表达式){
java 语句;
java 语句;
…
}
else if(布尔表达式){
java 语句;
java 语句;
…
}…对于java中的if,else语句来说,只要有一个执行,所有的if 语句结束 - if(布尔表达式){
java 语句;
java 语句;
…
}else if(布尔表达式){
java 语句;
java 语句;
…
}
else if(布尔表达式){
java 语句;
java 语句;
…
}
else if(布尔表达式){
java 语句;
java 语句;
…
}else{
java 语句;
java 语句;
…
}
以上的第二种和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行。
所有的控制语句都是可以嵌套使用的,只要合理嵌套就行。嵌套使用时,代码格式完美,该缩进时缩进。
if语句分支中只有一支java语句的话,大括号可以省略不写,不推荐使用。
考生成绩等级:
public class Lianxi8
{
public static void main(String []args){
int grade=58;
if(grade<0 || grade>100)
System.out.println("该考生成绩无效");
else if(grade>=90)
System.out.println("该考生成绩为A");
else if(grade>=80)
System.out.println("该考生成绩为B");
else if(grade>=70)
System.out.println("该考生成绩为C");
else if(grade>=60)
System.out.println("该考生成绩为D");
else
System.out.println("该考生成绩为E");
}
}
接收用户键盘输入:
java.util.Scanner s= new java.util.Scanner(System.in);
String userinputcontent s.next();//以字符串的形式接收
int num =s.nextInt();
接收用户键盘输入,年龄判断
public class Lianxi8
{
public static void main(String []args){
java.util.Scanner s= new java.util.Scanner(System.in);
System.out.print("请输入您的年龄: ");
//String userinputcontent s.next();//以字符串的形式接收
int n =s.nextInt();
String str = "老年";
if(n<0 || n>150){
str = "输入年龄不合法,请重新输入" ;}
else if (n<=5)
str = "幼儿";
else if (n<=10)
str = "少儿";
else if (n<=18)
str = "少年";
else if (n<=35)
str = "青年";
else if (n<=55)
str = "中年";
System.out.println(str);
}
}
分支语句switch
1.语法结构:switch(int 或string类型的字面值或变量){
case int 或string类型的字面值或变量;
java 语句:
…
break;
case int 或string类型的字面值或变量;
java 语句:
…
break;
case int 或string类型的字面值或变量;
java 语句:
…
break;
…
default;
…
}
2. 语句执行原理:switch后面小括号当中的语句和case后面的语句一一匹配,匹配成功则执行,遇到break语句终止。没有break直接进入下一个分支执行,这种现象被称为case穿透现象。所有分支都没有执行成功的话,执行default当中的语句。switch和if后面只能是Int和string类型的语句,不能是其他类型(byte,short,char可以,因为可以进行自动类型转换),case可以合并。
public class Lianxi9
{
public static void main(String []args){
java.util.Scanner s= new java.util.Scanner(System.in);
System.out.println("请输入1234");
int n =s.nextInt();
switch(n){
case 1:
System.out.println("我是你大爷");
break;
case 2:
System.out.println("我是你二爷");
break;
case 3:
System.out.println("我是你三爷");
break;
default:
System.out.println("我是你八爷");
}
}
}
从键盘输入数字和运算符,使用加减乘除运算符完成运算:
public class Lianxi9
{
public static void main(String []args){
java.util.Scanner s= new java.util.Scanner(System.in);
System.out.println("欢迎使用计算器系统");
System.out.println("请输入第一个数字");
int a=s.nextInt();
System.out.println("请输入运算符");
String b=s.next();
System.out.println("请输入第二个数字");
int c=s.nextInt();
int result=0;
switch (b)
{
case "+" :
result = a+c;
break;
case "-" :
result = a+c;
break;
case "*" :
result = a*c;
break;
case "/" :
result = a/c;
break;
case "%" :
result = a%c;
break;
default:
System.out.println("该系统不支持该运算");
}
System.out.println("运算结果为"+a+b+c+"="+result);
}
}
循环语句
for,while,do…while
for循环语句
for(初始化表达式;布尔表达式;更新表达式)
1.for循环的执行过程
初始化表达式,布尔表达式,更新表达式都不是必须的
初始化表达式最先执行,并且在啊整个for循环当中只执行一次。
布尔表达式必须是true/false,不能是其他值。
public class Lianxi10
{
public static void main(String[] args){
//for循环中的i变量的作用域仅限于for循环内部使用
for (int i=0;i<10;i++)
{System.out.println(i);
}
for (int i=0;i<=10;i++)
{System.out.println(i);
}
int i=0;
for (;i<10;i++)
{System.out.println(i);
}
//可以访问main方法作用于当中的i变量
System.out.println(i);//输出10
}
}
不同的for循环,在脑海中有for循环的循环过程
public class Lianxi10
{
public static void main(String[] args)
{
for (int i=0;i<=10 ;i+=2 )
{
System.out.println(i);
}
for (int i=10;i>0 ;i-- )
{
System.out.println(i);//10 9 8 7 6 5 4 3 2 1
}
for (int i=0;i<10 ;)
{
System.out.println(i);//0 1 2 3 4 5 6 7 8 9
i++;
}
for (int i=0;i<10 ;)
{
i++;
System.out.println(i);//1 2 3 4 5 6 7 8 9 10
}
}
}
public class Lianxi10
{
public static void main(String[] args){
for (int i=0;i<=100 ;i++ )
{
if (i%2!=0)
{
System.out.println(i);
}
}
}
}
求1-100内所有奇数的和
public class Lianxi10
{
public static void main(String[] args){
int sum=0;
for (int i=0;i<=100 ;i+=2 )
{
sum +=i;
}
System.out.println(sum);
}
}
//for循环嵌套for循环,内层循环中的变量名不能和外层循环中的变量名相同
public class Lianxi10
{
public static void main(String[] args){
for (int i=0;i<=10 ;i++ )
{
for (int j=0;j<3 ;j++ )//无论这里写的什么代码,这堆代码都要执行10遍
{
System.out.println(j);//输出10次0 1 2
}
}
}
}
使用for循环完成99乘法表
public class Lianxi10
{
public static void main(String[] args){
for (int i=1;i<=9 ;i++ )//外层循环9次
{
for (int j=1;j<=i;j++ )//i是行号,即每一行有几个
{
System.out.print(i + "*" + j + "=" + i*j + " ");//处理当前行,将当前行的所有项目输出
}
System.out.println();//换行
}
}
}
找出1-100中所有的素数
while 循环
语法结构:while(布尔表达式){循环体};
while循环的执行原理:
判断布尔表达式的结果:
如果为true, 执行循环体,如果为false,循环结束
while循环的循环次数:
while循环的循环体可能一次都不执行
public class Lianxi11
{
public static void main(String[] args){
int i=0;
while (i<=10)
{
System.out.println(i);
i++;
}
System.out.println("end" + i);
}
}//0 1 2 3 4 5 6 7 8 9 10 end11
do while 循环
语法结构:do{循环体}while(布尔表达式);
执行原理:
执行次数;1-N次,至少执行一次
注意事项:do while循环最后面有一个分号
public class Lianxi11
{
public static void main(String[] args){
int i=0;
do
{
System.out.println(i);//0 1 2 3 4 5 6 7 8 9
i++;
}
while (i<10);//分号不能忘
}
}
控制循环
continue,break
break
break是java语言中的关键字,意思为“中断,折断”;
“break;”可以成为一个完整的单独的java语句;
break语句一般使用在switch语句当中,用来终止switch语句;
break语句也会用在循环语句当中,用来终止循环,跳出循环,因为当执行到某个条件的时候,后续的循环就没必要执行了,可以提高程序运行效率;
在默认情况下,break语句终止的是离他最近的循环,也可以指定中断某个循环,需要给循环起名,采用“名字:”的方式
public class Lianxi11
{
public static void main(String[] args){
for (int i=1;i<3 ;i++ )
{
for (int j=1;j<10 ;j++ )
{
if (j==5)
{
break;//只终止内层for循环,因为内层for循环离break最近
}
System.out.print(j);//输出12341234
}
}
}
}
public class Lianxi11
{
public static void main(String[] args){
for1: for (int i=0;i<3 ;i++ )
{
for2: for (int j=1;j<10 ;j++ )
{
if (i==1)
{
break for1;//指定终止外层for循环
}
System.out.print(j);//输出123456789
}
}
}
}
continue
continue表示继续,或者下一个
“continue;”表示一个完整的java语句
break和continue的区别:
continue表示跳过本次循环,直接执行下一次循环
break表示终止循环;
continue后面也可以指定for循环的名称;
public class Lianxi11
{
public static void main(String[] args){
for (int i=1;i<3 ;i++ )
{
for (int j=1;j<10 ;j++ )
{
if (j==5)
{
continue;//跳过循环”j=5“,执行下一次循环,继续执行
}
System.out.print(j);//
}
System.out.println("Hello World!");//输出12346789Hello World! 12346789Hello World!
}
}
}
输出1-100中所有的素数
public class Lianxi12
{
public static void main(String args[]){
for (int i=2;i<=100;i++)
{
int n=2;
while (i%n!=0)//用i分别除以n,判断i是否可以被除了1之外的数整除
n++;
if (i==n)//判断i是不是等于自己
{
System.out.println(i);
}
}
}
}