选择语句

选择语句

if-elseyuju

import java.util.Scanner;
class Text02{
    public static void main(String[] args){
        System.out.print("Enter a,b,c,d,e,f:");     //提示用户输入
        Scanner scanner = new Scanner(System.in);   //调用库函数,从键盘获取数字 
        double a = scanner.nextDouble();            //输入a
        double b = scanner.nextDouble();            //输入b
        double c = scanner.nextDouble();            //输入c
        double d = scanner.nextDouble();            //输入d
        double e = scanner.nextDouble();            //输入e
        double f = scanner.nextDouble();            //输入f
        if((a*d-b*c)==0){                           //判断方程是否有解
            System.out.println("The equation has no solution");//输出无解
        }
        else{                                       //有解计算
            double x=(e*d-b*f)/(a*d-b*c);           //计算x
            double y=(a*f-e*c)/(a*d-b*c);           //计算y
            System.out.println("x is"+" "+x+" and y is"+" "+y);  //输出x和y
        } 
    }
}

运行结果:

 (游戏:彩票)产生两位整数的彩票。程序提示用户输入一个两位整数,然 后依照下面的规则判定用户是否贏得奖金:

1 )如果用户输人的所有数匹配彩票的确切顺序,奖金是10 000美元。

2) 如果用户输人的所有数匹配彩票的所有数字,奖金是 3 000 美元。

3 )如果用户输人的其中一个数匹配彩票号码中的一个数,奖金是 1 000美元。

思路:

1.电脑随机产生一个两位数 a(23)

2.用户输入一个两位数 b (12)

3.拆分两个数字的组成:a%10=3,a=a/10=2,a%10=2;得到a由2和3组成

                                       b%10=2,b=b/10=1,b%10=1;得到b由1和2组成

3.判断:若a=b,则满足条件一;

              若两个数字组成相同且顺序不同,则满足条件二;

              若两个数字的组成有且只有一个数字相同,则满足条件三;

              若没有一个数字相同,则没中奖;

import java.util.Scanner;
class Text05{
    public static void main(String[] args){
        System.out.print("Enter a number:");        
        Scanner scanner = new Scanner(System.in);
        int sum = scanner.nextInt();                //输入一个两位数
        int m=sum;
        int num = (int) (Math.random()*90+10);      //电脑随机产生一个两位数
        int n=num;
        int a=sum%10;                               //得到a的个位数
        sum=sum/10;                                    
        int b=sum%10;                               //得到a的十位数
        int c=num%10;                               //得到b的个位数
        num=num/10;
        int d=num%10;                               //得到b的十位数
        if(m==n){                                   //判断是否满足条件一
            System.out.print("money is 10 000 dollar");
        }
        else if((a==c&&b==d)||(a==d)&&b==c){
            System.out.print("money is 3000 dollar");//判断是否满足条件二
        }
        else if((a==c&&b!=d)||(a==d&&b!=c)||(b==c&&a!=d)||(b==d)&&(a!=c)){
            System.out.print("money is 1000 dollar");//判断是否满足条件三
        }
        else{
            System.out.print("have no money");        //没有中奖
        }
    }
}

科学:某天是星期几?

泽勒一致性是由克里斯汀 • 泽勒开发的用于计算某天是星期几的算法。

注意,公式中的除法执行一个整数相除。编写程序,提示用户输入年、月和该月的哪一天, 然后显示它是一周中的星期几

import java.util.Scanner;
class Text07{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter year:");
        int year = scanner.nextInt();                //输入年份
        System.out.print("Enter month: 1-12:");
        int m = scanner.nextInt();                   //输入月份
        System.out.print("Enter the day of the month: 1-31:");
        int q = scanner.nextInt();                   //输入天数
        if(m==1){                                    //如果月份为1,则位上一年的13月即m=13;year--;
            m=13;
            year--;
        }
        else if(m==2){                    //如果月份为1,则位上一年的13月即m=14;year--;
            m=14;
            year--;
        }
        int k = year%100;                           //计算k的值
        int j = year/100;                           //计算j的值
        int h = (q+(26*(m+1)/10)+k+k/4+j/4+5*j)%7;  //计算h
        if(h==0){                                   //如果h==0,则输出这天为周六
            System.out.print("Day of the week is Saturday");
        }
        else if(h==1){                              //如果h==1,则输出这天为周日
            System.out.print("Day of the week is Sunday");
        }        
        else if(h==2){                              //如果h==2,则输出这天为周一
            System.out.print("Day of the week is Monday");
        }
        else if(h==3){                              //如果h==3,则输出这天为周二
            System.out.print("Day of the week is Tuesday");
        }
        else if(h==4){                              //如果h==4,则输出这天为周三
            System.out.print("Day of the week is Wednesday");
        }
        else if(h==5){                              //如果h==5,则输出这天为周四
            System.out.print("Day of the week is Thursday");
        }
        else if(h==6){                              //如果h==6,则输出这天为周五
            System.out.print("Day of the week is Friday");
        }
    } 
}

运行结果:

          

几何:点是否在三角形内?

        假设一个直角三角形放在一个平面上,如下图所示。直角点在(0, 0) 处,其他两个点分别在(200, 0 ) 和(0, 100 ) 处。编写程序,提示用户输人一个点的; c 坐 标和7 坐标,然后判定这个点是否在该三角形内?

思路:

1.若要在三角形区域里面,则:0<= x <=200;  0 <= y <= -0.5x+200; 否则,就在三角形外面

import java.util.Scanner;
class Text09{
    public static void main(String[] args){
        System.out.print("Enter a point's x- and y-coordinates:");
        Scanner scanner = new Scanner(System.in);
        double x = scanner.nextDouble();            //输入点的x的坐标
        double y = scanner.nextDouble();            //输入点的y坐标
        if((0<x&&x<200)&&(0<y&&y<(-0.5)*x+100)){    //判断点在里面
            System.out.print("The point is in the triangle");
        }
        else{                                       //否则就在外面
            System.out.print("The point is not in the triangle");
        }
    }
}

运行结果:

 

几何:两个矩形

        编写一个程序,提示用户输入两个矩形中点的x 坐标和: v 坐标以及它们的宽 度和高度,然后判定第二个矩形是在第一个矩形内,还是和第一个矩形重叠。

思路:

1.判断小矩形是否在大矩形里面:((w1/2-w2/2)>=Math.abs(x1-x2))&&((h1/2-h2/2)>=Math.abs(y1-y2))时小矩形在大矩形里面;

2.判断小矩形是否在大矩形左右两边:(x2-w2/2)>=(x1+w1/2)||(x2+w2/2)<=(x1-w1/2)  时小矩形不在大矩形里面;

3.判断小矩形是否在大矩形上下两边:(y2-h2/2)>=(y1+h1/2)||(y2+h2/2)<=(y1-h1/2)    时小矩形不在大矩形里面 ;

4.其他情况小矩形与大矩形相交;

import java.util.Scanner;
class Text10{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter r1's center x-,y-coordinates,width,and height:");
        double x1 = scanner.nextDouble();        //分别输入第一个矩形的中心坐标、宽和高
        double y1 = scanner.nextDouble();
        double w1 = scanner.nextDouble();
        double h1 = scanner.nextDouble(); 
        System.out.print("Enter r2's center x-,y-coordinates,width,and height:"); 
        double x2 = scanner.nextDouble();        //分别输入第一个矩形的中心坐标、宽和高
        double y2 = scanner.nextDouble();
        double w2 = scanner.nextDouble();
        double h2 = scanner.nextDouble();     
        if(((w1/2-w2/2)>=Math.abs(x1-x2))&&((h1/2-h2/2)>=Math.abs(y1-y2))){
            System.out.println("r2 is inside r1");   //判断小矩形是否在大矩形里面
        }
        else{
            if((x2-w2/2)>=(x1+w1/2)||(x2+w2/2)<=(x1-w1/2)){    //判断小矩形是否在大矩形左右两边(即外面)
                System.out.println("r2 is not inside r1");
            }
            else if((y2-h2/2)>=(y1+h1/2)||(y2+h2/2)<=y1-h1/2){ //判断小矩形是否在大矩形上下两边(即外面)
                System.out.println("r2 is not inside r1");
            }
            else{
                System.out.println("r2 dose not overlap r1");  //两矩形相交
            }
            System.out.println("r2 dose not overlap r1");       //两矩形相交
        }
    }
}

运行结果:

  

显示金字塔:

提示用户输入一个在1到15之间的整数,然后显示一个金字塔形状的图案。

第一步:确定最外层循环-行数i:0 1 2 3 4 5 6 7

第二步:找出打印空格的规律k:7 6 5 4 3 2 1 0        i+k=7

第三步:找出要打印数字的规律:|i-1|

/*分析:
1.首先i表示行数;k表示空格数;拿第5行举例:当i等于5是:
                要打印:    4  3  2  1 2 3 4 也就是打印|x-1| -3<=x<=3
i       k                     
1       6                       1
2       5                     2 1 2                 |x-1|  4  3  2  1 2 3 4
3       4                   3 2 1 2 3                x-1  -4 -3 -2 -1 2 3 4
4       3                 4 3 2 1 2 3 4                x  -3 -2 -1  0 1 2 3
5       2               5 4 3 2 1 2 3 4 5 
6       1             6 5 4 3 2 1 2 3 4 5 6              x(-3,3)
7       0           7 6 5 4 3 2 1 2 3 4 5 6 7               */
import java.util.Scanner;
class Text14{
    public static void main(String[] args){
        System.out.print("Enter the number of lines:");    //提醒用户输入信息
        Scanner scanner = new Scanner(System.in);
        int p = scanner.nextInt();                         //输入一个1到15之间的数字
        for(int i=1;i<=p;i++){                             //最外层循环-表示行数
            for(int k=1;k<=p-i;k++){                       //内层循环-表示空格数
                System.out.print("    ");                  //打印空格
            }
            for(int x=-(i-1);x<=(i-1);x++){                //与空格数的循环并列-表示要打印的数字
                System.out.printf("%4d",Math.abs(x)+1);    //打印数字
            }
            System.out.println();                          //换行
        }
    }
}

运行结果:

使用for循环打印四个图案:

图案1:

第一步:确定外层for循环:行数  1 2 3 4 5 6

第二步:确定内层循环:找出打印的数字的规律   从1到i  (1~i)

class Text15_01{
    public static void main(String[] args){
        for(int i=1;i<=6;i++){                //外层循环控制行数
            for(int j=1;j<=i;j++){            //内层循环控制打印内容
                System.out.print(j+" ");      //打印的内容
            }
            System.out.println();             //换行
        }
    }
}

图案2:

/*
i 表示行数,j表示每行打印数字的最大值
                i    j   
1 2 3 4 5 6     6    6
1 2 3 4 5       5    5
1 2 3 4         4    4
1 2 3           3    3
1 2             2    2
1               1    1
外层循环:1.循环初始化:i=6
        2.循环继续条件:i>=1
        3.循环体:整个内层循环
        4.循环的周期,步长,间距:i--
内层循环:1.循环初始化:j=1
        2.循环继续条件:j<=i
        3.循环体:System.out.print(j+" ");
        4.循环的周期,步长,间距:j++
*/
class Text15_02{
    public static void main(String[] args){
        for(int i=6;i>=1;i--){
            for(int j=1;j<=i;j++){
                System.out.print(j+" ");
            }
            System.out.println();
        }
    }
}

图案三:

/*
i表示行数;k表示打印的空格数;j表示打印数字的最大值
                i   k    j    i+k=6
          1     1   5    1
        2 1     2   4    2
      3 2 1     3   3    3
    4 3 2 1     4   2    4
  5 4 3 2 1     5   1    5
6 5 4 3 2 1     6   0    6
外层循环:1.循环初始化:i=1
        2.循环继续条件:i<=6
        3.循环体:整个内层循环
        4.循环的周期,步长,间距:i++
内层循环1:1.循环初始化:k=1
         2.循环继续条件:i<=6-i
         3.循环体:System.out.print("  ");
         4.循环的周期,步长,间距:i++
内层循环2:1.循环初始化:j=1
         2.循环继续条件:j>=1
         3.循环体:System.out.print(j+" ");
         4.循环的周期,步长,间距:j--
*/
class Text15_03{
    public static void main(String[] args){
        for(int i=1;i<=6;i++){                //外层循环-控制行数
            for(int k=1;k<=6-i;k++){          //内层循环1-控制打印的空格数
                System.out.print("  ");       //打印空格
            }
            for(int j=i;j>=1;j--){            //内层循环2-控制打印的数字
                System.out.print(j+" ");      //打印数字
            }
            System.out.println();             //换行
        }
    }
}

图案四:

/*
i表示行数;j表示打印的空格数; k表示打印数字的最大值
               i    j    k
1 2 3 4 5 6    1    0    6
  1 2 3 4 5    2    1    5 
    1 2 3 4    3    2    4
      1 2 3    4    3    3
        1 2    5    4    2
          1    6    5    1
*/
class Text15_04{
    public static void main(String[] args){
        for(int i=6;i>=1;i--){            //外层循环-控制行数
            for(int j=6-i;j>=1;j--){      //内层循环1-控制打印空格数
                System.out.print("  ");   //打印空格
            }
            for(int k=1;k<=i;k++){        //内层循环2-控制的打印的数字
                System.out.print(k+" ");  //打印数字
            }
            System.out.println();         //换行
        }
    }
}

图案五:

/*
                      2^0 
                  2^0 2^1 2^0
              2^0 2^1 2^2 2^1 2^0
          2^0 2^1 2^2 2^3 2^2 2^1 2^1 
      2^0 2^1 2^2 2^3 2^4 2^3 2^2 2^1 2^0
  2^0 2^1 2^2 2^3 2^4 2^5 2^4 2^3 2^2 2^1 2^0                       i       x      
                               1                                    1       8         
                           1   2   1                                2       7       
                       1   2   4   2   1                            3       6       
                   1   2   4   8   4   2   1                        4       5       
               1   2   4   8  16   8   4   2   1                    5       4       
           1   2   4   8  16  32  16   8   4   2   1                6       3       
       1   2   4   8  16  32  64  32  16   8   4   2   1            7       2       
   1   2   4   8  16  32  64 128  64  32  16   8   4   2   1        8       1
            y  0  1  2  3  4  3  2  1 0     i=5     
            x -4 -3 -2 -1  0  1  2  3 4     x=-y+4               x(-(i-1),i-1)
           -y  0 -1 -2 -3 -4 -3 -2 -1 0     |x|=-y+n   n=i-1          y=i-1-|x|
         -y+4  4  3  2  1  0  1  2  3 4     要打印的是2^y
*/
class Text16_01{
    public static void main(String[] args){
        int a;
        for(int i=1;i<=8;i++){                //外层循环-控制行数
            for(int s=8-i;s>0;s--){           //内层循环1-控制打印空格数
                System.out.print("    ");     //打印空格
            }
            for(int j=-(i-1);j<=i-1;j++){     //内层循环2-控制打印的数字                       
                System.out.printf("%4d",a=(int)(Math.pow(2,i-1-Math.abs(j))));
            }                                 //打印数字2^(i-1-|x|)
            System.out.println();             //换行
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中的选择语句是一种基本的条件语句,用于根据不同的条件执行不同的代码块。在MATLAB中,有几种选择语句可供选择,包括if-else语句、switch-case语句和三元运算符。if-else语句是最常用的选择语句之一,它允许根据条件的真假来执行不同的代码块。if-else语句的语法如下: ``` if condition % code block to be executed if condition is true else % code block to be executed if condition is false end ``` 在if-else语句中,condition是一个逻辑表达式,如果它的值为true,则执行if后面的代码块;如果它的值为false,则执行else后面的代码块。 除了if-else语句,MATLAB还提供了switch-case语句,它允许根据不同的条件值执行不同的代码块。switch-case语句的语法如下: ``` switch expression case value1 % code block to be executed if expression equals value1 case value2 % code block to be executed if expression equals value2 otherwise % code block to be executed if expression does not match any case end ``` 在switch-case语句中,expression是一个表达式,根据它的值来选择执行哪个case后面的代码块。如果expression的值与某个case的值相等,则执行该case后面的代码块;如果expression的值与所有case的值都不相等,则执行otherwise后面的代码块。 此外,MATLAB还提供了三元运算符,它是一种更简单的条件语句,用于测试单个条件。它的语法如下: ``` variable = (condition) ? result_true : result_false ``` 在三元运算符中,condition是一个逻辑表达式,如果它的值为true,则将result_true赋值给variable;如果它的值为false,则将result_false赋值给variable。 通过使用这些选择语句,你可以根据不同的条件来执行不同的代码,从而实现更灵活和可控的程序逻辑。 #### 引用[.reference_title] - *1* *2* *3* [matlab选择语句详解](https://blog.csdn.net/weixin_44463965/article/details/130461254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值