一、if语句
if语句语法:
if(判断条件1)
{语句体1}
else if(判断条件2)
{语句体2}
else
{语句体3}
当满足判断条件1时,执行语句体1,如果不满足则看判断条件2,若满足则执行语句体2,如果还不满足那么直接执行语句体3。if判断语句时if() {} else {},如果还有其他判断条件是,则在中间用else if来判断
注:当if中判断比较字符串时,与C/C++不同,只能用用equals()比较两个字符串是否相等;
例题:用户输入用户名和密码,然后系统判断用户输入是否正确,如果都输入正确则输出“输入正确”,
否则输出“输入错误”。
int passWorld=111111;
String Name="admin";
Scanner scanner=new Scanner(System.in);
System.out.print("请输入用户名:");
String name=scanner.next();
System.out.print("请输入密码:");
int passkey=scanner.nextInt();
if(name.equals(Name) && passWorld==passkey)
{
System.out.println("输入正确!");
}
else
{
System.out.println("输入错误!");
}
二、switch语句
switch可以用于菜单栏的实现,选择那个功能,然后系统实现对应的功能
语法:
switch(语句) //表达式可以是整型、字符型、
{
case 值1: //值是与表达时匹配的值
语句体1 //当case后的值等于switch后的表达式时,执行这个语句体
break; //当执行完这个语句体则跳出这个switch语句,不在执行后面的语句
case 值2:
语句体2
break;
...
default:
语句体n
break;
}
例:输入两个数,选择两个数相加或相减的功能
System.out.println("1、加法");
System.out.println("2、减法");
Scanner scanner=new Scanner(System.in);
int select=scanner.nextInt(); //用户输入自己选择的功能
int num1=scanner.nextInt(); //接收用户输入的第一个数
int num2=scanner.nextInt(); //接收用户输入的第二个数
switch(select)
{
case 1:
System.out.println(num1+"+"+num2+"="+(num1+num2)); //实现两数相加的功能
break;
case 2:
System.out.println(num1+"-"+num2+"="+(num1-num2)); //实现两数相减的功能
break;
default:
break; //当选择的功能系统中没有时,则直接结束掉
}
三、for循环 和 for嵌套循环
for循环语法:
for(int i=0;i<n;i++){循环语句}
()里面的变量i必须要初始化,可以在for循环前面初始化(这个时候在for循环结束后还可以使用这个变量),也可以在for里面初始化(这个变量只能在for循环里面使用); n是给变量i一个自增的范围,当超出这个范围则循环结束;i++是语句每个多少次循环执行一次(可以--,也可以隔相隔多个)。
例:依次输出0-9的整数
for(int i=0;i<10;i++)
{
System.out.println(i);
}
for嵌套循环:在for循环里面再次使用for循环
例如,实现输出3*3阶的*图
for(int i=0;i<3;i++) //外面这层for循环实现行的输出
{
for(int j=0;j<3;j++) //这层for循环实现列的输出
{
System.out.println("*");
}
}
for嵌套循环例题:
实现一个如图菱形的*图输出

for (int i=0;i<4;i++) //将上面四层作为一部分
{
for (int z = 3; z > i; z--)//第一行要先输出三个空格(下面空格数依次递减),然后输出*
{
System.out.print(" ");
}
for (int j=0;j<=i;j++) //
{
System.out.print("* ");
}
System.out.println();
}
for (int i=0;i<3;i++) //将最下面三层作为一部分
{
for (int z=0;z<=i;z++) //第一行要先输出一个空格(下面空格数依次递增),然后输出*
{
System.out.print(" ");
}
for (int j=2;j>=i;j--)
{
System.out.print("* ");
}
System.out.println();
}
在完成这个小题目时,知道每行需要循环输出“ ”,又循环输出“*”,知道需要在一个for循环里面使用两个for循环,一个for循环输出*前面的空格位,一个for循环循环输出*;但当时完全没反应过来,就把这两个for循环又嵌套起来,发现输出差别很大。后来在同学的提示下才反应过来讲两个for循环平级使用才得已解决。
四、while 和 do while
while语法: while(判断语句) {语句体}
do while语法: do{语句体}(判断条件);
while循环与do while循环的区别:while循环先判断再执行;而do while循环先执行再判断。当一开始条件就不满足时,while循环不会执行语句体,而do while循环会执行一次语句体。
例:打印输出 4个*
用while实现
int i=0;
while(i<4)
{
System.out.println();
i++;
}
用do while实现
int i=0;
do
{
System.out.println();
i++;
}while(i<4);
五、跳转控制语句break和continue
break:跳出当前循环,例如for嵌套循环,在内循环里面使用break,则跳出内层for循环,然后执行下一次的外层循环。
例:循环输出3*5阶的*图矩阵,用break改变,让其输出3列
for (int i=0;i<3;i++)
{
for (int j=0;j<5;j++)
{
if (j==3)
{
break; //在第四列的时候直接跳出,不输出第四列以及后面列的*
}
System.out.print("*");
}
System.out.println();
}
continue:跳出本次循环,在for循环里面使用continue,则跳出本次循环,不再执行continue后面的语句,然后去执行下一次循环。
例:
for (int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if (j==2)
{
continue; //当j==2时,跳出本次循环,当循环到j==3时继续输出
}
System.out.print("i="+i+";j="+j+" ");
}
System.out.println();
}
五、随机数产生
Random random=new Random();
int num=random.nextInt(100); //生成的随机数是0-99的整数
如果想要(m,n)这个区间的随机数,则num=random.nextInt(n-m)+m