一、分支结构
分支结构多用于判断,有多条执行路径,但某一时刻只会执行一条路径
1、if-else结构
if() //括号里为boolean型,即可以为逻辑表达式
{
}else{
}
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//if结构比较两个数大小
int a=10;
int b=5;
int max;
if(a>b)
{
max=a;
System.out.println("max="+max);//+在字符串前后都为连缀符
}
else {
max=b;
System.out.println("max="+max);
}
}
}
2、if-else if-else结构
if()
{
}else if()
{
}else if()
{
}else{
}
注释:所有的括号里面都是boolean型
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//if-else if-else结构比较三个数大小
int a=10;
int b=23;
int c=6;
int max;
if(a>b && a>c)
{
max=a;
System.out.println("max="+max);
}else if(b>a && b>c)
{
max=b;
System.out.println("max="+max);
}else
{
max=c;
System.out.println("max="+max);
}
}
}
//这个例子只是为了展示if-else if-else结构,如果数据较多的比较以后用循环会更方便一些
3、switch-case结构,此结构不仅要求多条执行路径,还要求条件对等时适用
switch(v){
case a:
System.out.println("内容“);
break;
case b:
System.out.println(“内容”);
break;
……
default:
System.out.println(“内容”);
}
注释:1、v可以为byte,short,int,char,String在低版本不支持使用
2、每个case后必须跟上break,起到跳出结构的作用,若没有,V只会比对一次后就继续执行结构内的其他case语句
import java.util.Scanner;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印十行的倒空心三角形
/*题意描述:某人参加计算机程序设计大赛,若获得第一名,奖励戴尔笔记本一台;
* 若获得第二名,奖励移动键盘鼠标一套;若获得第三名,奖励爱国者U盘一个;若没获奖,
* 则只有鼓励话语(名次需键盘输入)
*/
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的名次: ");
int rank=sc.nextInt();
switch(rank) {
case 1:
System.out.println("恭喜你获得戴尔笔记本电脑一台!");
break;
case 2:
System.out.println("恭喜你获得移动键盘鼠标一套!");
break;
case 3:
System.out.println("恭喜你获得爱国者U盘一个!");
break;
default:
System.out.println("加油!明天会更好!");
break;
}
}
}
//必须与break联合用,若没有break,则还会往下执行,打印出其他内容
二、循环结构(该结构以刷题为主练习)
1、for循环
for(语句1;语句2;语句3)//语句1为赋值语句(定义初始化),语句2为判断语句,结果为true则进入循环,否则跳过循环,语句3用于更新值
{
//循环体
}
可以刷一下这些题:1、打印一行* 2、打印长方形 3、打印平行四边形 4、打印倒三角形 5、打印空心倒三角形
6、打印100以内的偶数 7、打印所有三位的水仙花数 8、1000以内的素数
小提示:求个十百位上的数字的规律:个位:a = i%10^1/1;
十位:b=i%10^2/10^1;
百位:c=i%10^3/10^2; 其他的也以此类推
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印*组成的6行6列平行四边形
int i,j;
for(i=1; i<=6; i++)
{
for(j=1; j<=i-1; j++)
{
System.out.print(" ");//控制空格的打印,每行有i-1个空格,空格的打印要在*之前
}
for(j=1; j<=6; j++)
{
System.out.print("*");//控制每行6个*
}
System.out.println();打印换行
}
}
}
2、while循环
while()//括号里为boolean型
{
//循环体
}
注释:while循环可以跟for循环相互转换,但是不停场合两者难易程度不一样,当循环次数比较明显时一般选择for循环;循环次数不明显时选用while循环。
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印一行10个*
int i=1;
while(i<=10)
{//将for循环的赋值语句提到最前,判断条件在while后,变量更新语句在循环体内
System.out.print("*");
i++;
}
}
}
3、do-while循环
do{
//循环体
}while()
//不管条件是否符合,循环体都会执行至少一遍
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印一行10个*
int i=1;
do{
System.out.print("*");
i++;
}while(i<=10);
}
}
小提示:break与continue的作用:break 结构中断并跳出当前结构
continue 结构继续但跳过当前循环,继续执行下一次循环
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//100以内基数之和
int sum = 1;
for(int i=2; i<100; i++)
{
if(i%2==0)
{
continue;//跳过该次循环,然后变量更新
}
else{
sum+=i;
}
System.out.println(sum);
}
}
}
//上面这个程序的作用等同于下面这个程序
package demo;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 1;
for(int i=2; i<100; i++)
{
if(i%2!=0)
{
sum+=i;
}
System.out.println(sum);
}
}
}