找回密码
 立即注册
Qt开源社区 门户 查看内容

linux与fortran之case语句详解

2019-9-27 06:20| 发布者: admin| 查看: 1605| 评论: 0

摘要: 更多精彩,请点击上方蓝字关注我们!1Fortran之case语句简单实用 在centos操作系统下,直接使用gfortran。 sudo yum install gcc-gfortran# cat test_case.F90program TestCase !程序名称,可以省略,但建议不要省略 ...


更多精彩,请点击上方蓝字关注我们!


1

Fortran之case语句简单实用

  在centos操作系统下,直接使用gfortran。

 sudo yum install gcc-gfortran

[root@localhost fortran]# cat test_case.F90
program TestCase !程序名称,可以省略,但建议不要省略

implicit none !关闭默认类型功能,所有的变量都要事先声明
               !implicit:用来设置默认类型,fortran如果不经过申明,将由第一个字母来决定变量类型
    !implicit integer(A-F,I-K):以A-F开头和I-K的变量都将视为整型数

   integer score
   character eval
   write(*,*) "Score"
   read(*,*) score

select case(score)!起始语句
    !只能使用整数,字符,以及逻辑变量,不能使用浮点数及复数
    !每个case中使用的数值必须是固定的常量,不能使用变量
   case(101: )
      eval="S"
   case(80:100)
      eval="A"
   case(0:59)
      eval="!"
   case default!其它情况
      eval="?"
end select
    !case语句块的形式:
        !   case(3)
        !   case(1:5)
        !   case(2: ):变量大于等于2时执行
        !   case( :6):变量小于等于8时执行语句块
        !   case(1,3,5,7):或执行语句
write(*,"('evaluate:',A1)") eval
    !格式化输出,用固定的一个字符字段来输出字符串,超过将被省去
               !关于常用的格式化的输出:
    !   "(I6)":固定以六个字符的字段来输出一个整数,不足的将会在前面补充空格
    !   "(I6.4)";固定六个字符字段输出,至少输出4个数字,不足则前面补零
    !   "(F5.4)":固定5个字符宽度来输出浮点数,小数部分固定输出4个,小数部分不足将0填充
    !   "(6X)":输出位置右移6位,以空白填充
    !   "(E15.7)":科学计数法,总共使用15个字符字段,小数部分占7位
    !   关于格式化的输出,遇到百度即可

stop
end

[root@localhost fortran]# gfortran test_case.F90

[root@localhost fortran]# ./a.out

 Score

-1

evaluate:?

[root@localhost fortran]# ./a.out

 Score

123

evaluate:S

[root@localhost fortran]# ./a.out

 Score

100

evaluate:A

[root@localhost fortran]# ./a.out

 Score

58

evaluate:!

1



shell之case语句

case语句语法:

    case $变量名 in

        模式1)

        命令序列1

        ;;

        模式2)

        命令序列2 ;;

        *)

        默认执行的命令序列     

        ;;

    esac

case语句结构特点如下:

    (1)case行尾必须为单词 in 每个模式必须以右括号 )

    (2)结束双分号 ;; 表示命令序列结束

    (3)匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列

[root@localhost fortran]# cat test
#!/bin/bash
read -p "Please input :" pd
case $pd in
    [a-z]|[A-Z])
        echo "this is a letter."
        ;;
    [0-9])
        echo "this is a digit."
        ;;
    *)
        echo "It's others."
esac

[root@localhost fortran]# ./test
Please input :2
this is a digit.

[root@localhost fortran]# ./test
Please input :a
this is a letter.

[root@localhost fortran]# ./test
Please input :A
this is a letter.                 

[root@localhost fortran]# cat shell_case  #好像不能这样用,是否可解
#! /bin/bash
read -p "Please input score: " SCORE
case "$SCORE" in
  [90-100])
    echo "grade: A"
    ;;
  [80-89])
    echo "grade: B"
    ;;
  [70-79])
    echo "grade: C"
    ;;
  [60-69])
    echo "grade: D"
    ;;
  [0-59])
    echo "grade: E"
    ;;
  *)
    echo "this is a bug"
esac

case语句常见于一些服务的启动脚本,如mysql、nginx等
[root@localhost 3306]# cat mysql
#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd="yanjiaxi"
CmdPath="/application/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
#startup function
......
......
case $1 in
start)
   start_mysql
   ;;
stop)
    stop_mysql
   ;;
restart)
    restart_mysql
   ;;
*)
   printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

[root@localhost fortran]# ./test2
   1.Math
   2.English
   3.Physics
   4.Chemistry
Please choose your course:1
Math

[root@localhost fortran]# cat test2
#!/bin/bash
#关于颜色的控制输出,百度,即用即搜
RED_COLOR='\E[1;31m'
GREEN_COLOR='\E[1;32m'
YELLOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
RES='\E[0m'

function usage(){
   echo "USAGE: $0 {1|2|3|4}"
   exit 1
}

function menu(){ #定义菜单
    cat <<END
   1.Math
   2.English
   3.Physics
   4.Chemistry
END
}

function chose(){
   read -p "Please choose your course:" COURSE
   case "$COURSE" in
       1)
         echo -e "${RED_COLOR}Math${RES}"
         ;;
       2)
         echo -e "${GREEN_COLOR}English${RES}"
         ;;
       3)
         echo -e "${YELLOW_COLOR}Physics${RES}"
         ;;
       4)
         echo -e "${YELLOW_COLOR}Chemistry${RES}"
         ;;
       *)
         usage
   esac
}

function main(){
   menu
   chose
}
main

[root@localhost fortran]# ./test2
   1.Math
   2.English
   3.Physics
   4.Chemistry
Please choose your course:4
Chemistry

[root@localhost fortran]# ./test2
   1.Math
   2.English
   3.Physics
   4.Chemistry
Please choose your course:3
Physics

[root@localhost fortran]# ./test2
   1.Math
   2.English
   3.Physics
   4.Chemistry
Please choose your course:2
English

[root@localhost fortran]# ./test2
   1.Math
   2.English
   3.Physics
   4.Chemistry
Please choose your course:1
Math




Linux Shell 编程特殊符号详解

◆ 再谈重定向

◆ 详解Linux正则

◆ Python正则知多少

◆ Linux三剑客之grep

◆ Linux三剑客之sed详解(1)

◆ linux三剑客之sed详解(2)

◆ 小白入门awk必备

◆ 你所不知道的awk内建函数




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:Linux与数据库自学之道,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了